repoindex/alpm/config.h

233 lines
5.3 KiB
C
Raw Normal View History

2015-08-10 22:46:01 +02:00
#ifndef ALPM_CONFIG_H
#define ALPM_CONFIG_H
#include <c++utilities/application/argumentparser.h>
#include <QString>
#include <QStringList>
#include <QHostAddress>
2015-09-04 14:37:01 +02:00
QT_FORWARD_DECLARE_CLASS(QJsonValue)
2015-08-10 22:46:01 +02:00
namespace RepoIndex {
// these are needed from the beginning and are initialized in the main()
extern bool useShSyntax;
extern const char *shchar;
2015-08-10 22:46:01 +02:00
class ConfigArgs
{
public:
ConfigArgs(ApplicationUtilities::ArgumentParser &parser);
ApplicationUtilities::HelpArgument helpArg;
ApplicationUtilities::Argument buildOrderArg;
2015-12-25 01:58:19 +01:00
ApplicationUtilities::Argument addSourceOnlyDeps;
2015-08-10 22:46:01 +02:00
ApplicationUtilities::Argument serverArg;
ApplicationUtilities::Argument upgradeLookupArg;
ApplicationUtilities::Argument mingwBundleArg;
2015-08-10 22:46:01 +02:00
ApplicationUtilities::Argument repoindexConfArg;
ApplicationUtilities::Argument rootdirArg;
ApplicationUtilities::Argument dbpathArg;
ApplicationUtilities::Argument pacmanConfArg;
ApplicationUtilities::Argument websocketAddrArg;
ApplicationUtilities::Argument websocketPortArg;
ApplicationUtilities::Argument certFileArg;
ApplicationUtilities::Argument keyFileArg;
ApplicationUtilities::Argument insecureArg;
ApplicationUtilities::Argument aurArg;
ApplicationUtilities::Argument verboseArg;
ApplicationUtilities::Argument outputFileArg;
2015-09-04 14:37:01 +02:00
ApplicationUtilities::Argument targetDirArg;
ApplicationUtilities::Argument targetNameArg;
ApplicationUtilities::Argument targetFormatArg;
ApplicationUtilities::Argument iconThemesArg;
ApplicationUtilities::Argument defaultIconThemeArg;
ApplicationUtilities::Argument extraPackagesArg;
2016-01-06 02:08:24 +01:00
ApplicationUtilities::Argument cacheDirArg;
ApplicationUtilities::Argument shSyntaxArg;
ApplicationUtilities::Argument repoArg;
2015-08-10 22:46:01 +02:00
};
class Config;
class RepoEntry
{
friend class Config;
public:
RepoEntry();
2015-08-10 22:46:01 +02:00
const QString &name() const;
const QString &dataBasePath() const;
const QString &sourceDir() const;
const QString &packageDir() const;
2015-08-10 22:46:01 +02:00
const QStringList &servers() const;
const QStringList &upgradeSources() const;
int sigLevel() const;
2015-08-10 22:46:01 +02:00
void load(const QJsonValue &jsonValue);
private:
QString m_name;
QString m_dataBaseFile;
QString m_sourceDir;
QString m_packageDir;
2015-08-10 22:46:01 +02:00
QStringList m_servers;
QStringList m_upgradeSources;
int m_sigLevel;
2015-08-10 22:46:01 +02:00
};
inline RepoEntry::RepoEntry() :
m_sigLevel(0)
{}
2015-08-10 22:46:01 +02:00
inline const QString &RepoEntry::name() const
{
return m_name;
}
inline const QString &RepoEntry::dataBasePath() const
2015-08-10 22:46:01 +02:00
{
return m_dataBaseFile;
2015-08-10 22:46:01 +02:00
}
inline const QString &RepoEntry::sourceDir() const
2015-08-10 22:46:01 +02:00
{
return m_sourceDir;
2015-08-10 22:46:01 +02:00
}
inline const QString &RepoEntry::packageDir() const
2015-08-10 22:46:01 +02:00
{
return m_packageDir;
2015-08-10 22:46:01 +02:00
}
inline const QStringList &RepoEntry::servers() const
{
return m_servers;
}
inline const QStringList &RepoEntry::upgradeSources() const
{
return m_upgradeSources;
}
inline int RepoEntry::sigLevel() const
{
return m_sigLevel;
}
2015-08-10 22:46:01 +02:00
class Config
{
public:
Config();
const QString &alpmRootDir() const;
const QString &alpmDbPath() const;
const QString &pacmanConfFile() const;
const QString &cacheDir() const;
2015-08-10 22:46:01 +02:00
const QHostAddress &websocketServerListeningAddr() const;
quint16 websocketServerListeningPort() const;
const QString &serverCertFile() const;
const QString &serverKeyFile() const;
bool serverInsecure() const;
bool reposFromPacmanConf() const;
const QList<RepoEntry> &repoEntries() const;
bool isAurEnabled() const;
bool isVerbose() const;
bool runServer() const;
const char *shSyntax() const;
2015-08-10 22:46:01 +02:00
void loadFromConfigFile(const QString &args);
void loadFromConfigFile(const ConfigArgs &args);
void loadFromArgs(const ConfigArgs &args);
private:
QString m_alpmRootDir;
QString m_alpmDbPath;
QString m_pacmanConfFile;
QString m_cacheDir;
2015-08-10 22:46:01 +02:00
QHostAddress m_websocketServerListeningAddr;
quint16 m_websocketServerListeningPort;
QString m_serverCertFile;
QString m_serverKeyFile;
bool m_serverInsecure;
QList<RepoEntry> m_repoEntries;
bool m_reposFromPacmanConf;
bool m_aurEnabled;
bool m_verbose;
bool m_runServer;
2015-08-10 22:46:01 +02:00
};
inline const QString &Config::alpmRootDir() const
{
return m_alpmRootDir;
}
inline const QString &Config::alpmDbPath() const
{
return m_alpmDbPath;
}
inline const QString &Config::pacmanConfFile() const
{
return m_pacmanConfFile;
}
inline const QString &Config::cacheDir() const
{
return m_cacheDir;
}
2015-08-10 22:46:01 +02:00
inline const QHostAddress &Config::websocketServerListeningAddr() const
{
return m_websocketServerListeningAddr;
}
inline quint16 Config::websocketServerListeningPort() const
{
return m_websocketServerListeningPort;
}
inline const QString &Config::serverCertFile() const
{
return m_serverCertFile;
}
inline const QString &Config::serverKeyFile() const
{
return m_serverKeyFile;
}
inline bool Config::serverInsecure() const
{
return m_serverInsecure;
}
inline bool Config::reposFromPacmanConf() const
{
return m_reposFromPacmanConf;
}
inline const QList<RepoEntry> &Config::repoEntries() const
{
return m_repoEntries;
}
inline bool Config::isAurEnabled() const
{
return m_aurEnabled;
}
inline bool Config::isVerbose() const
{
return m_verbose;
}
inline bool Config::runServer() const
{
return m_runServer;
}
2015-08-10 22:46:01 +02:00
} // namespace Alpm
#endif // ALPM_CONFIG_H