From 0687671c7d0090089b3e3133e0d9678cc122673c Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Sun, 25 Feb 2024 15:53:37 -0600 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Ensure=20config=20directory=20ex?= =?UTF-8?q?ists?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/config.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/cmd/config.go b/cmd/config.go index 530dc6e..dc28dd7 100644 --- a/cmd/config.go +++ b/cmd/config.go @@ -19,6 +19,7 @@ package cmd import ( "fmt" "os" + fp "path/filepath" "codeberg.org/danjones000/my-log/config" "github.com/spf13/cobra" @@ -30,22 +31,28 @@ var configCmd = &cobra.Command{ Short: "Save default config to file", //Long: ``, SilenceUsage: true, - RunE: func(cmd *cobra.Command, args []string) error { + RunE: func(cmd *cobra.Command, args []string) (err error) { force, _ := cmd.Flags().GetBool("force") if !force { - _, err := os.Stat(config.ConfigPath) + _, err = os.Stat(config.ConfigPath) if !os.IsNotExist(err) { return fmt.Errorf("%s already exists. Use -f to overwrite", config.ConfigPath) } } + dir := fp.Dir(config.ConfigPath) + err = os.MkdirAll(dir, 0755) + if err != nil { + return + } + f, err := os.Create(config.ConfigPath) if err != nil { - return err + return } defer f.Close() c := config.DefaultStr() fmt.Fprint(f, c) - return nil + return }, }