I am trying to create a default configuration file with viper if it doesn't already exist.
However, I am at a loss because viper seems to need this file to already exist.
I get the following error message:
Error writing config file: open /Users/zrbecker/.appname/config.yaml: no such file or directory
Here is the code I am trying to use.
func main() { viper.SetConfigName("config") viper.SetConfigType("yaml") homeDir, err := os.UserHomeDir() if err != nil { fmt.Fprintf(os.Stderr, "Error getting home directory: %v\n", err) os.Exit(1) } configPath := filepath.Join(homeDir, ".appname") configFilePath := filepath.Join(configPath, "config.yaml") if err := os.MkdirAll(configPath, 0755); err != nil { fmt.Fprintf(os.Stderr, "Unable to create config directory: %v\n", err) os.Exit(1) } if _, err := os.Stat(configFilePath); os.IsNotExist(err) { if err := viper.SafeWriteConfigAs(configFilePath); err != nil { fmt.Fprintf(os.Stderr, "Error writing config file: %v\n", err) os.Exit(1) } }}