diff --git a/build_config.go b/build_config.go index ad234f8..c77b52e 100644 --- a/build_config.go +++ b/build_config.go @@ -12,3 +12,15 @@ const LICENSE_URL = "https://www.gnu.org/licenses/gpl-3.0.en.html" const DEFAULT_DATA_DIRECTORY = "/usr/share/drasl" const DEFAULT_STATE_DIRECTORY = "/var/lib/drasl" const DEFAULT_CONFIG_DIRECTORY = "/etc/drasl" + +func GetDefaultDataDirectory() string { + return Getenv("DRASL_DEFAULT_DATA_DIRECTORY", DEFAULT_DATA_DIRECTORY) +} + +func GetDefaultStateDirectory() string { + return Getenv("DRASL_DEFAULT_STATE_DIRECTORY", DEFAULT_STATE_DIRECTORY) +} + +func GetDefaultConfigDirectory() string { + return Getenv("DRASL_DEFAULT_CONFIG_DIRECTORY", DEFAULT_CONFIG_DIRECTORY) +} diff --git a/common.go b/common.go index 4618c32..b24bf75 100644 --- a/common.go +++ b/common.go @@ -65,7 +65,7 @@ var Constants = &ConstantsType{ MaxPlayerCountUnlimited: -1, MaxUsernameLength: 16, MaxPlayerNameLength: 16, - ConfigDirectory: DEFAULT_CONFIG_DIRECTORY, + ConfigDirectory: GetDefaultConfigDirectory(), Version: VERSION, License: LICENSE, LicenseURL: LICENSE_URL, diff --git a/config.go b/config.go index 4676646..afb118a 100644 --- a/config.go +++ b/config.go @@ -116,7 +116,7 @@ func DefaultConfig() Config { ApplicationOwner: "Anonymous", BaseURL: "", BodyLimit: defaultBodyLimitConfig, - DataDirectory: DEFAULT_DATA_DIRECTORY, + DataDirectory: GetDefaultDataDirectory(), DefaultAdmins: []string{}, DefaultPreferredLanguage: "en", DefaultMaxPlayerCount: 1, @@ -147,7 +147,7 @@ func DefaultConfig() Config { }, SignPublicKeys: true, SkinSizeLimit: 128, - StateDirectory: DEFAULT_STATE_DIRECTORY, + StateDirectory: GetDefaultStateDirectory(), TestMode: false, TokenExpireSec: 0, TokenStaleSec: 0, diff --git a/util.go b/util.go index 507a1e9..7aab10c 100644 --- a/util.go +++ b/util.go @@ -163,3 +163,10 @@ func CopyPath(sourcePath string, destinationPath string) (int64, error) { } return bytesWritten, nil } + +func Getenv(key string, fallback string) string { + if value := os.Getenv(key); value != "" { + return value + } + return fallback +}