From 411e23ecfecaaebdb02355fe5223f9f962726a78 Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Thu, 27 Apr 2023 00:41:09 +0700 Subject: [PATCH] cmd/ctrld: fix missing content for default config When writing default config file, the content must be marshalled to the config object first before writing to disk. While at it, also use full path for default config file to make it clear to the user where the config is written. --- cmd/ctrld/cli.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cmd/ctrld/cli.go b/cmd/ctrld/cli.go index 986623a..2d41994 100644 --- a/cmd/ctrld/cli.go +++ b/cmd/ctrld/cli.go @@ -608,10 +608,17 @@ func readConfigFile(writeDefaultConfig bool) bool { // If error is viper.ConfigFileNotFoundError, write default config. if _, ok := err.(viper.ConfigFileNotFoundError); ok { + if err := v.Unmarshal(&cfg); err != nil { + log.Fatalf("failed to unmarshal default config: %v", err) + } if err := writeConfigFile(); err != nil { log.Fatalf("failed to write default config file: %v", err) } else { - log.Println("writing default config file to: " + defaultConfigFile) + fp, err := filepath.Abs(defaultConfigFile) + if err != nil { + log.Fatalf("failed to get default config file path: %v", err) + } + log.Println("writing default config file to: " + fp) } defaultConfigWritten = true return false