use cli argument to initialize config file

This commit is contained in:
2026-03-02 16:09:12 +01:00
parent 4a4229d67b
commit 83a4796ff8

View File

@@ -54,31 +54,34 @@ func defaultConfig() Config {
func LoadConfig(configPath string) Config { func LoadConfig(configPath string) Config {
f, err := os.ReadFile(configPath) f, err := os.ReadFile(configPath)
var cfg Config
configFileNotExist := false
if err != nil { if err != nil {
if errors.Is(err, os.ErrNotExist) { if errors.Is(err, os.ErrNotExist) {
return initConfig(configPath) cfg = defaultConfig()
configFileNotExist = true
} else {
log.Fatal(err)
}
} else {
err = toml.Unmarshal(f, &cfg)
if err != nil {
panic(err)
} }
log.Fatal(err)
}
var cfg Config
err = toml.Unmarshal(f, &cfg)
if err != nil {
panic(err)
} }
kong.Parse(&cfg, kong.Configuration(kongtoml.Loader, configPath)) kong.Parse(&cfg, kong.Configuration(kongtoml.Loader, configPath))
return cfg if configFileNotExist {
} b, err := toml.Marshal(cfg)
if err != nil {
panic(err)
}
err = os.WriteFile(configPath, b, 0666)
if err != nil {
log.Fatal(err)
}
}
func initConfig(configPath string) Config {
cfg := defaultConfig()
b, err := toml.Marshal(cfg)
if err != nil {
panic(err)
}
err = os.WriteFile(configPath, b, 0666)
if err != nil {
log.Fatal(err)
}
return cfg return cfg
} }