tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ArchiveCommandLine.h (2703B)


      1 // ArchiveCommandLine.h
      2 
      3 #ifndef __ARCHIVE_COMMAND_LINE_H
      4 #define __ARCHIVE_COMMAND_LINE_H
      5 
      6 #include "../../../Common/CommandLineParser.h"
      7 #include "../../../Common/Wildcard.h"
      8 
      9 #include "EnumDirItems.h"
     10 
     11 #include "Extract.h"
     12 #include "HashCalc.h"
     13 #include "Update.h"
     14 
     15 typedef CMessagePathException CArcCmdLineException;
     16 
     17 namespace NCommandType { enum EEnum
     18 {
     19  kAdd = 0,
     20  kUpdate,
     21  kDelete,
     22  kTest,
     23  kExtract,
     24  kExtractFull,
     25  kList,
     26  kBenchmark,
     27  kInfo,
     28  kHash,
     29  kRename
     30 };}
     31 
     32 struct CArcCommand
     33 {
     34  NCommandType::EEnum CommandType;
     35 
     36  bool IsFromExtractGroup() const;
     37  bool IsFromUpdateGroup() const;
     38  bool IsTestCommand() const { return CommandType == NCommandType::kTest; }
     39  NExtract::NPathMode::EEnum GetPathMode() const;
     40 };
     41 
     42 enum
     43 {
     44  k_OutStream_disabled = 0,
     45  k_OutStream_stdout = 1,
     46  k_OutStream_stderr = 2
     47 };
     48 
     49 struct CArcCmdLineOptions
     50 {
     51  bool HelpMode;
     52 
     53  // bool LargePages;
     54  bool CaseSensitiveChange;
     55  bool CaseSensitive;
     56 
     57  bool IsInTerminal;
     58  bool IsStdOutTerminal;
     59  bool IsStdErrTerminal;
     60  bool StdInMode;
     61  bool StdOutMode;
     62  bool EnableHeaders;
     63 
     64  bool YesToAll;
     65  bool ShowDialog;
     66  NWildcard::CCensor Censor;
     67 
     68  CArcCommand Command;
     69  UString ArchiveName;
     70 
     71  #ifndef _NO_CRYPTO
     72  bool PasswordEnabled;
     73  UString Password;
     74  #endif
     75 
     76  bool TechMode;
     77  bool ShowTime;
     78  
     79  UStringVector HashMethods;
     80 
     81  bool AppendName;
     82  // UStringVector ArchivePathsSorted;
     83  // UStringVector ArchivePathsFullSorted;
     84  NWildcard::CCensor arcCensor;
     85  UString ArcName_for_StdInMode;
     86 
     87  CObjectVector<CProperty> Properties;
     88 
     89  CExtractOptionsBase ExtractOptions;
     90 
     91  CBoolPair NtSecurity;
     92  CBoolPair AltStreams;
     93  CBoolPair HardLinks;
     94  CBoolPair SymLinks;
     95 
     96  CUpdateOptions UpdateOptions;
     97  CHashOptions HashOptions;
     98  UString ArcType;
     99  UStringVector ExcludedArcTypes;
    100  
    101  unsigned Number_for_Out;
    102  unsigned Number_for_Errors;
    103  unsigned Number_for_Percents;
    104  unsigned LogLevel;
    105 
    106  // bool IsOutAllowed() const { return Number_for_Out != k_OutStream_disabled; }
    107 
    108  // Benchmark
    109  UInt32 NumIterations;
    110 
    111  CArcCmdLineOptions():
    112      // LargePages(false),
    113      CaseSensitiveChange(false),
    114      CaseSensitive(false),
    115 
    116      StdInMode(false),
    117      StdOutMode(false),
    118 
    119      Number_for_Out(k_OutStream_stdout),
    120      Number_for_Errors(k_OutStream_stderr),
    121      Number_for_Percents(k_OutStream_stdout),
    122 
    123      LogLevel(0)
    124  {
    125  };
    126 };
    127 
    128 class CArcCmdLineParser
    129 {
    130  NCommandLineParser::CParser parser;
    131 public:
    132  void Parse1(const UStringVector &commandStrings, CArcCmdLineOptions &options);
    133  void Parse2(CArcCmdLineOptions &options);
    134 };
    135 
    136 #endif