231 lines
5.2 KiB
C++
231 lines
5.2 KiB
C++
#ifndef ALPM_CONFIG_H
|
|
#define ALPM_CONFIG_H
|
|
|
|
#include <c++utilities/application/argumentparser.h>
|
|
|
|
#include <QString>
|
|
#include <QStringList>
|
|
#include <QHostAddress>
|
|
|
|
QT_FORWARD_DECLARE_CLASS(QJsonValue)
|
|
|
|
namespace RepoIndex {
|
|
|
|
// these are needed from the beginning and are initialized in the main()
|
|
extern bool useShSyntax;
|
|
extern const char *shchar;
|
|
|
|
class ConfigArgs
|
|
{
|
|
public:
|
|
ConfigArgs(ApplicationUtilities::ArgumentParser &parser);
|
|
ApplicationUtilities::HelpArgument helpArg;
|
|
ApplicationUtilities::Argument buildOrderArg;
|
|
ApplicationUtilities::Argument serverArg;
|
|
ApplicationUtilities::Argument upgradeLookupArg;
|
|
ApplicationUtilities::Argument mingwBundleArg;
|
|
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;
|
|
ApplicationUtilities::Argument targetDirArg;
|
|
ApplicationUtilities::Argument targetNameArg;
|
|
ApplicationUtilities::Argument targetFormatArg;
|
|
ApplicationUtilities::Argument iconThemesArg;
|
|
ApplicationUtilities::Argument defaultIconThemeArg;
|
|
ApplicationUtilities::Argument extraPackagesArg;
|
|
ApplicationUtilities::Argument shSyntaxArg;
|
|
ApplicationUtilities::Argument repoArg;
|
|
};
|
|
|
|
class Config;
|
|
|
|
class RepoEntry
|
|
{
|
|
friend class Config;
|
|
public:
|
|
RepoEntry();
|
|
const QString &name() const;
|
|
const QString &dataBasePath() const;
|
|
const QString &sourceDir() const;
|
|
const QString &packageDir() const;
|
|
const QStringList &servers() const;
|
|
const QStringList &upgradeSources() const;
|
|
int sigLevel() const;
|
|
void load(const QJsonValue &jsonValue);
|
|
|
|
private:
|
|
QString m_name;
|
|
QString m_dataBaseFile;
|
|
QString m_sourceDir;
|
|
QString m_packageDir;
|
|
QStringList m_servers;
|
|
QStringList m_upgradeSources;
|
|
int m_sigLevel;
|
|
};
|
|
|
|
inline RepoEntry::RepoEntry() :
|
|
m_sigLevel(0)
|
|
{}
|
|
|
|
inline const QString &RepoEntry::name() const
|
|
{
|
|
return m_name;
|
|
}
|
|
|
|
inline const QString &RepoEntry::dataBasePath() const
|
|
{
|
|
return m_dataBaseFile;
|
|
}
|
|
|
|
inline const QString &RepoEntry::sourceDir() const
|
|
{
|
|
return m_sourceDir;
|
|
}
|
|
|
|
inline const QString &RepoEntry::packageDir() const
|
|
{
|
|
return m_packageDir;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
class Config
|
|
{
|
|
public:
|
|
Config();
|
|
|
|
const QString &alpmRootDir() const;
|
|
const QString &alpmDbPath() const;
|
|
const QString &pacmanConfFile() const;
|
|
const QString &cacheDir() const;
|
|
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;
|
|
|
|
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;
|
|
|
|
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;
|
|
};
|
|
|
|
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;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
} // namespace Alpm
|
|
|
|
#endif // ALPM_CONFIG_H
|