func setupAndSaveConfig()

in pkg/cmd/root/root.go [119:139]


func setupAndSaveConfig(cmd *cobra.Command, args []string) error {
	if err := injectViperConfig(); err != nil {
		return err
	}
	saveConfigToFile()

	if watchCfg := viper.GetBool(gf.WatchConfigFileFlag); watchCfg {
		viper.OnConfigChange(func(_ fsnotify.Event) {
			if err := injectViperConfig(); err != nil {
				log.Printf("Failed to reset config on config change: %v\n", err)
				return
			}
			saveConfigToFile()
			server.Reset()
			cmdutil.RegisterHandlers(cmd, c)
		})
		viper.WatchConfig()
	}

	return nil
}