summaryrefslogtreecommitdiffstats
path: root/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/main.cpp b/main.cpp
index 421aae1..8f6d214 100644
--- a/main.cpp
+++ b/main.cpp
@@ -195,6 +195,25 @@ static int findFirstFreePort(Utils::PortList &range)
return openServer(&s, range);
}
+bool readEnvs(Config *config)
+{
+ QFile f(config->envFile);
+ if (!f.open(QFile::ReadOnly)) {
+ fprintf(stderr, "Could not read environment file: %s\n", qPrintable(config->envFile));
+ return false;
+ }
+
+ while (!f.atEnd()) {
+ const auto line = f.readLine().simplified();
+ if (!line.startsWith("#")) {
+ const auto index = line.indexOf('=');
+ config->env[line.left(index)] = line.mid(index + 1);
+ }
+ }
+ f.close();
+ return true;
+}
+
bool parseConfigFile(Config *config, const QString &fileName)
{
QFile f(fileName);
@@ -227,6 +246,8 @@ bool parseConfigFile(Config *config, const QString &fileName)
config->debugInterface = Config::PublicDebugInterface;
else
qWarning() << "Unkonwn value for debuginterface:" << value;
+ } else if (line.startsWith("environmentFile=")) {
+ config->envFile = line.mid(16).simplified();
}
}
f.close();
@@ -349,6 +370,8 @@ int main(int argc, char **argv)
Config config;
if (!parseConfigFile(&config, "/etc/appcontroller.conf"))
fprintf(stderr, "Failed to parse config file.\n");
+ if (!config.envFile.isEmpty())
+ readEnvs(&config);
while (!args.isEmpty()) {
const QString arg(args.takeFirst());