2018-09-29 15:56:04 +03:00
|
|
|
/*
|
2019-01-26 07:51:58 +03:00
|
|
|
* Copyright (C) 2018-2019 QuasarApp.
|
2018-09-29 15:56:04 +03:00
|
|
|
* Distributed under the lgplv3 software license, see the accompanying
|
|
|
|
* Everyone is permitted to copy and distribute verbatim copies
|
|
|
|
* of this license document, but changing it is not allowed.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "params.h"
|
|
|
|
#include <QVariantMap>
|
|
|
|
#include <QDebug>
|
2019-01-16 22:17:05 +03:00
|
|
|
#include <QFileInfo>
|
2019-01-27 19:45:30 +03:00
|
|
|
#ifdef Q_OS_WIN
|
|
|
|
#include "windows.h"
|
|
|
|
#else
|
|
|
|
#include <unistd.h>
|
|
|
|
#endif
|
2018-09-29 15:56:04 +03:00
|
|
|
|
|
|
|
using namespace QuasarAppUtils;
|
|
|
|
|
|
|
|
static QVariantMap params = QVariantMap();
|
|
|
|
|
|
|
|
|
|
|
|
bool Params::isEndable(const QString& key) {
|
|
|
|
return params.contains(key);
|
|
|
|
}
|
|
|
|
|
2019-01-02 13:42:51 +03:00
|
|
|
void Params::verboseLog(const QString &log) {
|
|
|
|
if (isEndable("verbose")) {
|
|
|
|
qDebug() << "verbose log: " + log ;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-09-29 15:56:04 +03:00
|
|
|
bool Params::parseParams(int argc, char *argv[]) {
|
|
|
|
params.clear();
|
2019-01-27 19:45:30 +03:00
|
|
|
|
|
|
|
#ifdef Q_OS_WIN
|
|
|
|
char buffer[MAX_PATH];
|
|
|
|
GetModuleFileNameA(nullptr, buffer, MAX_PATH);
|
|
|
|
params ["appPath"] = QFileInfo(buffer).absolutePath();
|
|
|
|
#else
|
2019-01-16 22:17:05 +03:00
|
|
|
params ["appPath"] = QFileInfo(argv[0]).absolutePath();
|
2019-01-27 19:45:30 +03:00
|
|
|
#endif
|
|
|
|
|
|
|
|
if (!getStrArg("appPath").size()) {
|
|
|
|
return false;
|
|
|
|
}
|
2018-09-29 15:56:04 +03:00
|
|
|
|
|
|
|
for (int i = 1; i < argc; i++) {
|
|
|
|
if (argv[i][0] == '-' && i ) {
|
|
|
|
if (i < (argc - 1) && argv[i + 1][0] != '-') {
|
|
|
|
params[&(argv[i][1])] = argv[i + 1];
|
|
|
|
i++;
|
|
|
|
} else {
|
|
|
|
qWarning() << "Missing argument for " + QString(argv[i]) ;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
params[argv[i]] = "";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString Params::getStrArg(const QString& key) {
|
|
|
|
return params.value(key, "").toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
QVariant Params::getArg(const QString& key) {
|
|
|
|
return params.value(key, "");
|
|
|
|
}
|