diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | common/config.go | 12 | ||||
| -rw-r--r-- | main.go | 4 |
3 files changed, 15 insertions, 3 deletions
@@ -24,7 +24,7 @@ go.work* .idea .env tmp -config/**.toml +*.toml data docker-compose.yml diff --git a/common/config.go b/common/config.go index 07cff8d..8cb74ab 100644 --- a/common/config.go +++ b/common/config.go @@ -56,9 +56,17 @@ func (c *Config) SetDefaultValues() { func LoadConfig(path string) (*Config, error) { b, err := os.ReadFile(path) + var cfg Config if err != nil { - return nil, err + if !os.IsNotExist(err) { + return nil, err + } + cfg.SetDefaultValues() + b, err := toml.Marshal(cfg) + if err != nil { + return nil, err + } + return nil, os.WriteFile(path, b, 0600) } - var cfg Config return &cfg, toml.Unmarshal(b, &cfg) } @@ -77,6 +77,10 @@ func main() { if err != nil { panic(err) } + if cfg == nil { + println("config initialized") + return + } db, err := cfg.Database.Connect() if err != nil { |
