api: allow configuration files
Closes https://gitlab.com/commento/commento-ce/issues/55
This commit is contained in:
parent
89852ef76a
commit
1b1c97f0f0
@ -14,6 +14,8 @@ func parseConfig() error {
|
||||
}
|
||||
|
||||
defaults := map[string]string{
|
||||
"CONFIG_FILE": "",
|
||||
|
||||
"POSTGRES": "postgres://postgres:postgres@localhost/commento?sslmode=disable",
|
||||
|
||||
"BIND_ADDRESS": "127.0.0.1",
|
||||
@ -36,6 +38,12 @@ func parseConfig() error {
|
||||
"GOOGLE_SECRET": "",
|
||||
}
|
||||
|
||||
if os.Getenv("COMMENTO_CONFIG_FILE") != "" {
|
||||
if err := configFileLoad(os.Getenv("COMMENTO_CONFIG_FILE")); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for key, value := range defaults {
|
||||
if os.Getenv("COMMENTO_"+key) == "" {
|
||||
os.Setenv(key, value)
|
||||
|
37
api/config_file.go
Normal file
37
api/config_file.go
Normal file
@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func configFileLoad(filepath string) error {
|
||||
file, err := os.Open(filepath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
defer file.Close()
|
||||
|
||||
scanner := bufio.NewScanner(file)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
|
||||
i := strings.Index(line, "=")
|
||||
if i == -1 {
|
||||
continue
|
||||
}
|
||||
|
||||
key := line[:i]
|
||||
value := line[i+1:]
|
||||
|
||||
if !strings.HasPrefix(key, "COMMENTO_") {
|
||||
continue
|
||||
}
|
||||
|
||||
os.Setenv(key[9:], value)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue
Block a user