From affcef2eda5586308ae7ad6c205ff76869921e5a Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Wed, 20 Mar 2024 00:02:22 +0300 Subject: [PATCH] "Improve" config loading --- Dockerfile | 2 -- config.go | 32 +++++++++++++++++++------------- main.go | 2 +- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 231ef9b..d12deb2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,5 @@ COPY pages pages/ VOLUME data VOLUME config -#USER nonroot:nonroot - EXPOSE 7101 ENTRYPOINT ["/hibiscus"] \ No newline at end of file diff --git a/config.go b/config.go index 11e51bf..5082b03 100644 --- a/config.go +++ b/config.go @@ -31,20 +31,17 @@ func (c *Config) Save() error { return nil } -func LoadConfig() (Config, error) { - cfg := Config{Port: 7101, Username: "admin", Password: "admin"} // Default values are declared here, I guess - +func (c *Config) Reload() error { if _, err := os.Stat(ConfigFile); errors.Is(err, os.ErrNotExist) { - err := cfg.Save() + err := c.Save() if err != nil { - return cfg, err + return err } - return cfg, nil + return nil } - file, err := os.Open(ConfigFile) if err != nil { - log.Fatal(err) + return err } defer file.Close() @@ -57,19 +54,28 @@ func LoadConfig() (Config, error) { key := entry[0] value := entry[1] if key == "username" { - cfg.Username = value + c.Username = value } else if key == "password" { - cfg.Password = value + c.Password = value } else if key == "port" { numVal, err := strconv.Atoi(value) if err == nil { - cfg.Port = numVal + c.Port = numVal } } } if err := scanner.Err(); err != nil { - log.Fatal(err) + return err } - return cfg, nil + return nil +} + +func ConfigInit() Config { + cfg := Config{Port: 7101, Username: "admin", Password: "admin"} // Default values are declared here, I guess + err := cfg.Reload() + if err != nil { + log.Fatal(err) + } + return cfg } diff --git a/main.go b/main.go index ef84dce..002b15f 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,6 @@ package main -var Cfg, _ = LoadConfig() +var Cfg = ConfigInit() func main() { Serve()