From e5478eae3f078c22721b86cc46d6c804d98cdb3b Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Fri, 12 Jul 2024 15:29:36 -0700 Subject: [PATCH 1/2] Create config file if it does not exist --- cmd/root.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/root.go b/cmd/root.go index 91de49c4..1416e3b7 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -290,7 +290,11 @@ func setFlagsFromConfig() error { return err } - _ = viper.ReadInConfig() + err = viper.ReadInConfig() + if err != nil { + // attempt to write config file if it does not exist + _ = viper.SafeWriteConfigAs(configFile) + } return nil } From a576d6eaa667e06e10f88e458139fb3d8471cdee Mon Sep 17 00:00:00 2001 From: Danny Olson Date: Fri, 12 Jul 2024 15:34:01 -0700 Subject: [PATCH 2/2] Add error message --- internal/config/config.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/config/config.go b/internal/config/config.go index 2491747a..ec56a7df 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -32,7 +32,9 @@ type Config struct { func New(filename string, readFile ReadFile) (Config, error) { data, err := readFile(filename) if err != nil { - return Config{}, err + return Config{}, errors.NewError( + fmt.Sprintf("unable to open config file. The file or directory may not exist: %s", filename), + ) } var c Config