| // ArchiveCommandLine.h |
| |
| #ifndef __ARCHIVE_COMMAND_LINE_H |
| #define __ARCHIVE_COMMAND_LINE_H |
| |
| #include "Common/CommandLineParser.h" |
| #include "Common/Wildcard.h" |
| |
| #include "Extract.h" |
| #include "Update.h" |
| |
| struct CArchiveCommandLineException: public AString |
| { |
| CArchiveCommandLineException(const char *errorMessage): AString(errorMessage) {} |
| }; |
| |
| namespace NCommandType { enum EEnum |
| { |
| kAdd = 0, |
| kUpdate, |
| kDelete, |
| kTest, |
| kExtract, |
| kFullExtract, |
| kList, |
| kBenchmark, |
| kInfo |
| };} |
| |
| namespace NRecursedType { enum EEnum |
| { |
| kRecursed, |
| kWildCardOnlyRecursed, |
| kNonRecursed |
| };} |
| |
| struct CArchiveCommand |
| { |
| NCommandType::EEnum CommandType; |
| bool IsFromExtractGroup() const; |
| bool IsFromUpdateGroup() const; |
| bool IsTestMode() const { return CommandType == NCommandType::kTest; } |
| NExtract::NPathMode::EEnum GetPathMode() const; |
| }; |
| |
| struct CArchiveCommandLineOptions |
| { |
| bool HelpMode; |
| |
| #ifdef _7ZIP_LARGE_PAGES |
| bool LargePages; |
| #endif |
| |
| bool IsInTerminal; |
| bool IsStdOutTerminal; |
| bool IsStdErrTerminal; |
| bool StdInMode; |
| bool StdOutMode; |
| bool EnableHeaders; |
| |
| bool YesToAll; |
| bool ShowDialog; |
| // NWildcard::CCensor ArchiveWildcardCensor; |
| NWildcard::CCensor WildcardCensor; |
| |
| CArchiveCommand Command; |
| UString ArchiveName; |
| |
| #ifndef _NO_CRYPTO |
| bool PasswordEnabled; |
| UString Password; |
| #endif |
| |
| bool TechMode; |
| // Extract |
| bool CalcCrc; |
| bool AppendName; |
| UString OutputDir; |
| NExtract::NOverwriteMode::EEnum OverwriteMode; |
| UStringVector ArchivePathsSorted; |
| UStringVector ArchivePathsFullSorted; |
| CObjectVector<CProperty> ExtractProperties; |
| |
| CUpdateOptions UpdateOptions; |
| UString ArcType; |
| bool EnablePercents; |
| |
| // Benchmark |
| UInt32 NumIterations; |
| UInt32 NumThreads; |
| UInt32 DictionarySize; |
| UString Method; |
| |
| |
| CArchiveCommandLineOptions(): StdInMode(false), StdOutMode(false) {}; |
| }; |
| |
| class CArchiveCommandLineParser |
| { |
| NCommandLineParser::CParser parser; |
| public: |
| CArchiveCommandLineParser(); |
| void Parse1(const UStringVector &commandStrings, CArchiveCommandLineOptions &options); |
| void Parse2(CArchiveCommandLineOptions &options); |
| }; |
| |
| void EnumerateDirItemsAndSort(NWildcard::CCensor &wildcardCensor, |
| UStringVector &sortedPaths, |
| UStringVector &sortedFullPaths); |
| |
| #endif |