Skip to content

Commit

Permalink
Initialize persistent state even when no config file exists
Browse files Browse the repository at this point in the history
  • Loading branch information
twpayne committed Jun 23, 2019
1 parent 01eaf98 commit f6a8d97
Showing 1 changed file with 14 additions and 10 deletions.
24 changes: 14 additions & 10 deletions cmd/root.go
Expand Up @@ -90,16 +90,20 @@ func init() {
_ = viper.BindPFlag("color", persistentFlags.Lookup("color"))

cobra.OnInitialize(func() {
if _, err := os.Stat(config.configFile); os.IsNotExist(err) {
return
}
viper.SetConfigFile(config.configFile)
config.err = viper.ReadInConfig()
if config.err == nil {
config.err = viper.Unmarshal(&config)
}
if config.err != nil {
config.warn(fmt.Sprintf("%s: %v", config.configFile, config.err))
_, err := os.Stat(config.configFile)
switch {
case err == nil:
viper.SetConfigFile(config.configFile)
config.err = viper.ReadInConfig()
if config.err == nil {
config.err = viper.Unmarshal(&config)
}
if config.err != nil {
config.warn(fmt.Sprintf("%s: %v", config.configFile, config.err))
}
case os.IsNotExist(err):
default:
printErrorAndExit(err)
}
persistentStateFile := getPersistentStateFile(config.bds, config.configFile)
persistentState, err := chezmoi.NewBoltPersistentState(vfs.OSFS, persistentStateFile)
Expand Down

0 comments on commit f6a8d97

Please sign in to comment.