# command_line.hpp

    00001 /*********************************************************************/
    00002 // dar - disk archive - a backup/restoration program
    00003 // Copyright (C) 2002-2052 Denis Corbin
    00004 //
    00005 // This program is free software; you can redistribute it and/or
    00006 // modify it under the terms of the GNU General Public License
    00007 // as published by the Free Software Foundation; either version 2
    00008 // of the License, or (at your option) any later version.
    00009 //
    00010 // This program is distributed in the hope that it will be useful,
    00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00013 // GNU General Public License for more details.
    00014 //
    00015 // You should have received a copy of the GNU General Public License
    00016 // along with this program; if not, write to the Free Software
    00017 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
    00018 //
    00019 // to contact the author : dar.linux@free.fr
    00020 /*********************************************************************/
    00021 // $Id: command_line.hpp,v 1.24.2.1 2009/04/06 20:23:19 edrusb Rel $
    00022 //
    00023 /*********************************************************************/
    00024
    00025 #ifndef COMMAND_LINE_HPP
    00026 #define COMMAND_LINE_HPP
    00027
    00028 #include "../my_config.h"
    00029 #include <string>
    00030 #include <vector>
    00031 #include "infinint.hpp"
    00032 #include "compressor.hpp"
    00033 #include "mask.hpp"
    00034 #include "path.hpp"
    00035 #include "catalogue.hpp"
    00036 #include "archive.hpp"
    00037
    00038 using namespace std;
    00039 using namespace libdar;
    00040
    00041 enum operation { noop, extract, create, diff, test, listing, isolate, merging };
    00042     // noop stands for no-operation. get_args() never returns such value,
    00043     // it is just necessary within the command_line module
    00044
    00045 extern bool get_args(user_interaction & dialog,
    00046                      const char *home,
    00047                      S_I argc, char *argv[], operation & op, path * & fs_root,
    00048                      path * & sauv_root, path * & ref_root,
    00049                      infinint & file_size, infinint & first_file_size,
    00050                      mask * & selection, mask * & subtree,
    00051                      string & filename, string * & ref_filename,
    00052                      bool & allow_over, bool & warn_over, bool & info_details,
    00053                      compression & algo, U_I & compression_level,
    00054                      bool & detruire,
    00055                      infinint & pause,
    00056                      bool & beep,
    00057                      bool & make_empty_dir, bool & only_more_recent,
    00058                      mask * & ea_mask,
    00059                      string & input_pipe, string & output_pipe,
    00060                      inode::comparison_fields & what_to_check,
    00061                      string & execute, string & execute_ref,
    00062                      string & pass, string & pass_ref,
    00063                      mask * & compress_mask,
    00064                      bool & flat,
    00065                      infinint & min_compr_size,
    00066                      bool & nodump,
    00067                      infinint & hourshift,
    00068                      bool & warn_remove_no_match,
    00069                      string & alteration,
    00070                      bool & empty,
    00071                      path * & on_fly_root,
    00072                      string * & on_fly_filename,
    00073                      bool & alter_atime,
    00074                      bool & same_fs,
    00075                      bool & snapshot,
    00076                      bool & cache_directory_tagging,
    00077                      U_32 & crypto_size,
    00078                      U_32 & crypto_size_ref,
    00079                      bool & ea_erase,
    00080                      bool & display_skipped,
    00081                      archive::listformat & list_mode,
    00082                      path * & aux_root,
    00083                      string * & aux_filename,
    00084                      string & aux_pass,
    00085                      string & aux_execute,
    00086                      U_32 & aux_crypto_size,
    00087                      bool & keep_compressed,
    00088                      infinint & fixed_date,
    00089                      bool & quiet);
    00090
    00091
    00092 #endif