|
@ -5,6 +5,7 @@ import ( |
|
|
"errors" |
|
|
"errors" |
|
|
"log" |
|
|
"log" |
|
|
"os" |
|
|
"os" |
|
|
|
|
|
"strconv" |
|
|
"strings" |
|
|
"strings" |
|
|
"sync" |
|
|
"sync" |
|
|
|
|
|
|
|
@ -51,6 +52,27 @@ type Wiki struct { |
|
|
URL string `json:"url" yaml:"url"` |
|
|
URL string `json:"url" yaml:"url"` |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
func (config *Config) LoadEnv() { |
|
|
|
|
|
config.Wiki.URL = os.Getenv("RPDATA_WIKI_URL") |
|
|
|
|
|
config.Space.Enabled = os.Getenv("RPDATA_SPACE_ENABLED") == "true" |
|
|
|
|
|
config.Space.Host = os.Getenv("RPDATA_SPACE_HOST") |
|
|
|
|
|
config.Space.AccessKey = os.Getenv("RPDATA_SPACE_ACCESS_KEY") |
|
|
|
|
|
config.Space.SecretKey = os.Getenv("RPDATA_SPACE_SECRET_KEY") |
|
|
|
|
|
config.Space.Bucket = os.Getenv("RPDATA_SPACE_BUCKET") |
|
|
|
|
|
config.Space.MaxSize, _ = strconv.ParseInt(os.Getenv("RPDATA_SPACE_MAX_SIZE"), 10, 64) |
|
|
|
|
|
config.Space.Root = os.Getenv("RPDATA_SPACE_ROOT") |
|
|
|
|
|
config.Space.URLRoot = os.Getenv("RPDATA_SPACE_URL_ROOT") |
|
|
|
|
|
config.Database.Driver = os.Getenv("RPDATA_DATABASE_DRIVER") |
|
|
|
|
|
config.Database.Host = os.Getenv("RPDATA_DATABASE_HOST") |
|
|
|
|
|
config.Database.Port, _ = strconv.Atoi(os.Getenv("RPDATA_DATABASE_PORT")) |
|
|
|
|
|
config.Database.Db = os.Getenv("RPDATA_DATABASE_DB") |
|
|
|
|
|
config.Database.Username = os.Getenv("RPDATA_DATABASE_USERNAME") |
|
|
|
|
|
config.Database.Password = os.Getenv("RPDATA_DATABASE_PASSWORD") |
|
|
|
|
|
config.Database.Mechanism = os.Getenv("RPDATA_DATABASE_MECHANISM") |
|
|
|
|
|
config.Database.RestoreIDs = os.Getenv("RPDATA_DATABASE_RESTORE_IDS") == "true" |
|
|
|
|
|
config.Database.SSL = os.Getenv("RPDATA_DATABASE_SSL") == "true" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// Load loads config stuff
|
|
|
// Load loads config stuff
|
|
|
func (config *Config) Load(filename string) error { |
|
|
func (config *Config) Load(filename string) error { |
|
|
log.Println("Trying to load config from " + filename) |
|
|
log.Println("Trying to load config from " + filename) |
|
@ -94,9 +116,10 @@ func Global() Config { |
|
|
globalMutex.Lock() |
|
|
globalMutex.Lock() |
|
|
if global == nil { |
|
|
if global == nil { |
|
|
global = &Config{} |
|
|
global = &Config{} |
|
|
|
|
|
global.LoadEnv() |
|
|
err := global.LoadAny("/etc/aiterp/rpdata.yaml", "/etc/aiterp/rpdata.json", "./config.yaml", "./config.json") |
|
|
err := global.LoadAny("/etc/aiterp/rpdata.yaml", "/etc/aiterp/rpdata.json", "./config.yaml", "./config.json") |
|
|
if err != nil { |
|
|
if err != nil { |
|
|
log.Fatalln(err) |
|
|
|
|
|
|
|
|
log.Println("No config files were loaded.") |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
globalMutex.Unlock() |
|
|
globalMutex.Unlock() |
|
|