mirror of
https://git.krews.org/morningstar/Arcturus-Community.git
synced 2024-11-30 09:50:51 +01:00
Allow settings via ENV-variables
This commit is contained in:
parent
872d4d06e9
commit
ea92573dc8
@ -2,6 +2,7 @@ package com.eu.habbo.core;
|
|||||||
|
|
||||||
import com.eu.habbo.Emulator;
|
import com.eu.habbo.Emulator;
|
||||||
import com.eu.habbo.plugin.events.emulator.EmulatorConfigUpdatedEvent;
|
import com.eu.habbo.plugin.events.emulator.EmulatorConfigUpdatedEvent;
|
||||||
|
import gnu.trove.map.hash.THashMap;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@ -31,28 +32,72 @@ public class ConfigurationManager {
|
|||||||
|
|
||||||
InputStream input = null;
|
InputStream input = null;
|
||||||
|
|
||||||
try {
|
String envDbHostname = System.getenv("DB_HOSTNAME");
|
||||||
File f = new File(this.configurationPath);
|
|
||||||
input = new FileInputStream(f);
|
|
||||||
this.properties.load(input);
|
|
||||||
|
|
||||||
} catch (IOException ex) {
|
boolean useEnvVarsForDbConnection = envDbHostname != null && envDbHostname.length() > 1;
|
||||||
Emulator.getLogging().logErrorLine("[CRITICAL] FAILED TO LOAD CONFIG FILE! (" + this.configurationPath + ")");
|
|
||||||
ex.printStackTrace();
|
if (!useEnvVarsForDbConnection) {
|
||||||
} finally {
|
try {
|
||||||
if (input != null) {
|
File f = new File(this.configurationPath);
|
||||||
try {
|
input = new FileInputStream(f);
|
||||||
input.close();
|
this.properties.load(input);
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
} catch (IOException ex) {
|
||||||
|
Emulator.getLogging().logErrorLine("[CRITICAL] FAILED TO LOAD CONFIG FILE! (" + this.configurationPath + ")");
|
||||||
|
ex.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
if (input != null) {
|
||||||
|
try {
|
||||||
|
input.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
Map<String, String> envMapping = new THashMap<>();
|
||||||
|
|
||||||
|
// Database section
|
||||||
|
envMapping.put("db.hostname", "DB_HOSTNAME");
|
||||||
|
envMapping.put("db.port", "DB_PORT");
|
||||||
|
envMapping.put("db.database", "DB_DATABASE");
|
||||||
|
envMapping.put("db.username", "DB_USERNAME");
|
||||||
|
envMapping.put("db.password", "DB_PASSWORD");
|
||||||
|
envMapping.put("db.params", "DB_PARAMS");
|
||||||
|
|
||||||
|
// Game Configuration
|
||||||
|
envMapping.put("game.host", "EMU_HOST");
|
||||||
|
envMapping.put("game.port", "EMU_PORT");
|
||||||
|
|
||||||
|
// RCON
|
||||||
|
envMapping.put("rcon.host", "RCON_HOST");
|
||||||
|
envMapping.put("rcon.port", "RCON_PORT");
|
||||||
|
envMapping.put("rcon.allowed", "RCON_ALLOWED");
|
||||||
|
|
||||||
|
// Runtime
|
||||||
|
envMapping.put("runtime.threads", "RT_THREADS");
|
||||||
|
envMapping.put("logging.errors.runtime", "RT_LOG_ERRORS");
|
||||||
|
|
||||||
|
|
||||||
|
for (Map.Entry<String, String> entry : envMapping.entrySet()) {
|
||||||
|
String envValue = System.getenv(entry.getValue());
|
||||||
|
|
||||||
|
if (envValue == null || envValue.length() == 0) {
|
||||||
|
Emulator.getLogging().logStart("Cannot find environment-value for variable `" + entry.getValue() + "`");
|
||||||
|
} else {
|
||||||
|
this.properties.setProperty(entry.getKey(), envValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (this.loaded) {
|
if (this.loaded) {
|
||||||
this.loadFromDatabase();
|
this.loadFromDatabase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
this.isLoading = false;
|
this.isLoading = false;
|
||||||
Emulator.getLogging().logStart("Configuration Manager -> Loaded!");
|
Emulator.getLogging().logStart("Configuration Manager -> Loaded!");
|
||||||
|
|
||||||
@ -183,4 +228,4 @@ public class ConfigurationManager {
|
|||||||
|
|
||||||
this.update(key, value);
|
this.update(key, value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user