mirror of https://github.com/pikami/cosmium.git
Added ability to configure using environment variables
This commit is contained in:
parent
398584368f
commit
86c0275410
|
@ -65,5 +65,14 @@ To disable SSL and run Cosmium on HTTP instead, you can use the `-DisableTls` fl
|
||||||
|
|
||||||
These arguments allow you to configure various aspects of Cosmium's behavior according to your requirements.
|
These arguments allow you to configure various aspects of Cosmium's behavior according to your requirements.
|
||||||
|
|
||||||
|
All mentioned arguments can also be set using environment variables:
|
||||||
|
* **COSMIUM_ACCOUNTKEY** for `-AccountKey`
|
||||||
|
* **COSMIUM_DISABLEAUTH** for `-DisableAuth`
|
||||||
|
* **COSMIUM_HOST** for `-Host`
|
||||||
|
* **COSMIUM_INITIALDATA** for `-InitialData`
|
||||||
|
* **COSMIUM_PERSIST** for `-Persist`
|
||||||
|
* **COSMIUM_PORT** for `-Port`
|
||||||
|
* **COSMIUM_DEBUG** for `-Debug`
|
||||||
|
|
||||||
# License
|
# License
|
||||||
This project is [MIT licensed](./LICENSE).
|
This project is [MIT licensed](./LICENSE).
|
||||||
|
|
|
@ -3,10 +3,13 @@ package config
|
||||||
import (
|
import (
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
DefaultAccountKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
|
DefaultAccountKey = "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw=="
|
||||||
|
EnvPrefix = "COSMIUM_"
|
||||||
)
|
)
|
||||||
|
|
||||||
var Config = ServerConfig{}
|
var Config = ServerConfig{}
|
||||||
|
@ -25,6 +28,7 @@ func ParseFlags() {
|
||||||
debug := flag.Bool("Debug", false, "Runs application in debug mode, this provides additional logging")
|
debug := flag.Bool("Debug", false, "Runs application in debug mode, this provides additional logging")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
setFlagsFromEnvironment()
|
||||||
|
|
||||||
Config.Host = *host
|
Config.Host = *host
|
||||||
Config.Port = *port
|
Config.Port = *port
|
||||||
|
@ -42,3 +46,17 @@ func ParseFlags() {
|
||||||
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
|
Config.DatabaseEndpoint = fmt.Sprintf("https://%s:%d/", Config.Host, Config.Port)
|
||||||
Config.AccountKey = *accountKey
|
Config.AccountKey = *accountKey
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setFlagsFromEnvironment() (err error) {
|
||||||
|
flag.VisitAll(func(f *flag.Flag) {
|
||||||
|
name := EnvPrefix + strings.ToUpper(strings.Replace(f.Name, "-", "_", -1))
|
||||||
|
if value, ok := os.LookupEnv(name); ok {
|
||||||
|
err2 := flag.Set(f.Name, value)
|
||||||
|
if err2 != nil {
|
||||||
|
err = fmt.Errorf("failed setting flag from environment: %w", err2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue