@@ -87,8 +87,8 @@ func (c *Config) InitConfig() {
8787 c .LocalConfig = viper .New ()
8888
8989 // Read global config
90- GlobalConfigFolder := c .GetConfigFolder (os .Getenv ("XDG_CONFIG_HOME" ))
91- c .GlobalConfigFile = filepath .Join (GlobalConfigFolder , "config.toml" )
90+ globalConfigFolder := c .GetConfigFolder (os .Getenv ("XDG_CONFIG_HOME" ))
91+ c .GlobalConfigFile = filepath .Join (globalConfigFolder , "config.toml" )
9292 c .GlobalConfig .SetConfigType ("toml" )
9393 c .GlobalConfig .SetConfigFile (c .GlobalConfigFile )
9494 c .GlobalConfig .SetConfigPermissions (os .FileMode (0600 ))
@@ -110,19 +110,19 @@ func (c *Config) InitConfig() {
110110 if err != nil {
111111 log .Fatal (err )
112112 }
113- LocalConfigFile := ""
113+ localConfigFile := ""
114114 if c .LocalConfigFile == "" {
115- LocalConfigFile = filepath .Join (workspaceFolder , ".hookdeck/config.toml" )
115+ localConfigFile = filepath .Join (workspaceFolder , ".hookdeck/config.toml" )
116116 } else {
117117 if filepath .IsAbs (c .LocalConfigFile ) {
118- LocalConfigFile = c .LocalConfigFile
118+ localConfigFile = c .LocalConfigFile
119119 } else {
120- LocalConfigFile = filepath .Join (workspaceFolder , c .LocalConfigFile )
120+ localConfigFile = filepath .Join (workspaceFolder , c .LocalConfigFile )
121121 }
122122 }
123123 c .LocalConfig .SetConfigType ("toml" )
124- c .LocalConfig .SetConfigFile (LocalConfigFile )
125- c .LocalConfigFile = LocalConfigFile
124+ c .LocalConfig .SetConfigFile (localConfigFile )
125+ c .LocalConfigFile = localConfigFile
126126 if err := c .LocalConfig .ReadInConfig (); err == nil {
127127 log .WithFields (log.Fields {
128128 "prefix" : "config.Config.InitConfig" ,
@@ -243,18 +243,21 @@ func (c *Config) RemoveAllProfiles() error {
243243 runtimeViper .SetConfigType ("toml" )
244244 runtimeViper .SetConfigFile (c .GlobalConfig .ConfigFileUsed ())
245245 c .GlobalConfig = runtimeViper
246- return c .GlobalConfig . WriteConfig ()
246+ return c .WriteGlobalConfig ()
247247}
248248
249- func (c * Config ) SaveLocalConfig () error {
250- if err := ensureDirectoy ( filepath . Dir ( c . LocalConfigFile )); err != nil {
249+ func (c * Config ) WriteGlobalConfig () error {
250+ if err := makePath ( c . GlobalConfig . ConfigFileUsed ( )); err != nil {
251251 return err
252252 }
253- return c .LocalConfig .WriteConfig ()
253+ return c .GlobalConfig .WriteConfig ()
254254}
255255
256- func ensureDirectoy (path string ) error {
257- return os .MkdirAll (path , os .ModePerm )
256+ func (c * Config ) WriteLocalConfig () error {
257+ if err := makePath (c .LocalConfig .ConfigFileUsed ()); err != nil {
258+ return err
259+ }
260+ return c .LocalConfig .WriteConfig ()
258261}
259262
260263// Construct the config struct from flags > local config > global config
@@ -314,6 +317,19 @@ func removeKey(v *viper.Viper, key string) (*viper.Viper, error) {
314317 return nv , nil
315318}
316319
320+ func makePath (path string ) error {
321+ dir := filepath .Dir (path )
322+
323+ if _ , err := os .Stat (dir ); os .IsNotExist (err ) {
324+ err = os .MkdirAll (dir , os .ModePerm )
325+ if err != nil {
326+ return err
327+ }
328+ }
329+
330+ return nil
331+ }
332+
317333// taken from https://github.com/spf13/viper/blob/master/util.go#L199,
318334// we need this to delete configs, remove when viper supprts unset natively
319335func deepSearch (m map [string ]interface {}, path []string ) map [string ]interface {} {
0 commit comments