prt-get/src/argparser.h

144 lines
3.5 KiB
C++

////////////////////////////////////////////////////////////////////////
// FILE: argparser.h
// AUTHOR: Johannes Winkelmann, jw@tks6.net
// COPYRIGHT: (c) 2002 by Johannes Winkelmann
// ---------------------------------------------------------------------
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
////////////////////////////////////////////////////////////////////////
#ifndef _ARGPARSER_H_
#define _ARGPARSER_H_
#include <list>
#include <string>
using namespace std;
/*!
\class ArgParser
\brief Argument Parser
This is the argument parser for prt-get.
*/
class ArgParser
{
public:
ArgParser( int argc, char** argv );
bool parse();
/*! Command type */
enum Type { HELP, LIST, SEARCH, DSEARCH, INSTALL, DEPINST,
INFO, DEPENDS, ISINST, DUP, UPDATE,
QUICKDEP, DIFF, GRPINST, GRPUPDATE,
QUICKDIFF, SHOW_VERSION, CREATE_CACHE, PATH,
LISTINST, PRINTF, README, DEPENDENT, SYSUP,
CURRENT, FSEARCH, LOCK, UNLOCK, LISTLOCKED,
CAT, LS, EDIT, REMOVE,
DEPTREE, DUMPCONFIG, LISTORPHANS };
bool isCommandGiven() const;
bool isForced() const;
bool isTest() const;
bool isAlternateConfigGiven() const;
bool useCache() const;
bool wasCalledAsPrtCached() const;
bool writeLog() const;
bool hasFilter() const;
bool noStdConfig() const;
bool nodeps() const;
bool all() const;
bool printPath() const;
bool execPreInstall() const;
bool execPostInstall() const;
bool preferHigher() const;
bool strictDiff() const;
bool useRegex() const;
bool fullPath() const;
bool recursive() const;
bool printTree() const;
bool depSort() const;
bool followSoftdeps() const;
const string& alternateConfigFile() const;
const string& pkgmkArgs() const;
const string& pkgaddArgs() const;
const string& pkgrmArgs() const;
const string& sortArgs() const;
const string& filter() const;
const string& installRoot() const;
const string& ignore() const;
Type commandType() const;
const string& commandName() const;
const string& unknownOption() const;
const list<char*>& otherArgs() const;
int verbose() const;
enum ConfigArgType { CONFIG_SET, CONFIG_APPEND, CONFIG_PREPEND };
const list< pair<char*, ConfigArgType> > configData() const;
private:
bool m_isCommandGiven;
bool m_isForced;
bool m_isTest;
bool m_isAlternateConfigGiven;
bool m_useCache;
bool m_calledAsPrtCache;
bool m_hasFilter;
bool m_noStdConfig;
bool m_writeLog;
bool m_nodeps;
bool m_softdeps;
bool m_all;
bool m_printPath;
bool m_execPreInstall;
bool m_execPostInstall;
bool m_preferHigher;
bool m_strictDiff;
bool m_useRegex;
bool m_fullPath;
bool m_recursive;
bool m_printTree;
bool m_depSort;
string m_alternateConfigFile;
string m_pkgmkArgs;
string m_pkgaddArgs;
string m_pkgrmArgs;
string m_sortArgs;
string m_filter;
string m_commandName;
string m_unknownOption;
string m_installRoot;
string m_ignore;
Type m_commandType;
int m_argc;
char** m_argv;
int m_verbose;
list<char*> m_otherArgs;
list< pair<char*, ConfigArgType> > m_configData;
};
#endif /* _ARGPARSER_H_ */