1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2020 KiCad Developers, see AUTHORS.txt for contributors. 5 * 6 * This program is free software: you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License as published by the 8 * Free Software Foundation, either version 3 of the License, or (at your 9 * option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License along 17 * with this program. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef KICAD_PROJECT_ARCHIVER_H 21 #define KICAD_PROJECT_ARCHIVER_H 22 23 #include <wx/string.h> 24 25 26 class PROJECT; 27 class REPORTER; 28 class SETTINGS_MANAGER; 29 30 31 class PROJECT_ARCHIVER 32 { 33 public: 34 PROJECT_ARCHIVER(); 35 36 ~PROJECT_ARCHIVER() = default; 37 38 /** 39 * Creates an archive of the project 40 * @param aSrcFile is the full path to the project to be archived 41 * @param aDestFile is the full path to the zip file to be created 42 * @param aReporter is used to report status 43 * @param aVerbose controls the verbosity of reported status messages 44 * @param aIncludeExtraFiles if true will archive legacy and output files 45 * @return true if the archive was created successfully 46 */ 47 bool Archive( const wxString& aSrcDir, const wxString& aDestFile, REPORTER& aReporter, 48 bool aVerbose = true, bool aIncludeExtraFiles = false ); 49 50 /** 51 * Extracts an archive of the current project over existing files 52 * Warning: this will overwrite files in the project directory. Use with care. The caller is 53 * responsible for doing any reloading of state after taking this action. 54 * @param aSrcFile is the full path to the archive to extract 55 * @param aDestDir is the target directory to unarchive to 56 * @param aReporter is used to report status 57 * @return true if the archive was created successfully 58 */ 59 bool Unarchive( const wxString& aSrcFile, const wxString& aDestDir, REPORTER& aReporter ); 60 }; 61 62 #endif // KICAD_PROJECT_ARCHIVER_H 63