aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--common/config.go12
-rw-r--r--main.go4
3 files changed, 15 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 75c893b..de745c8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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)
}
diff --git a/main.go b/main.go
index 4428edb..8f76d80 100644
--- a/main.go
+++ b/main.go
@@ -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 {