var manipulateEnvironmentYAML = &cobra.Command { Use: "cmd usage [url]", Short: "Sets the public-albums URL in YAML configuraiton file", Args: cobra.ExactArgs(1), Run: func(cmd *cobra.Command, args []string) { // Get environment to make changes to valid file environment := os.Getenv("ENVIRONMENT") if environment == "" { environment = "local" } viper.AddConfigPath("../server/configurations/") viper.SetConfigName(environment) viper.SetConfigType("yaml") err := viper.ReadInConfig() if err != nil { fmt.Errorf("%s", err) return } albumsUrl := args[0] _, err = url.ParseRequestURI(albumsUrl) if err != nil { // Report Error and exit fmt.Printf("Invalid URL: %s\nPlease enter a valid endpoint for public albums", err) os.Exit(1) } else { viper.Set("apps.public-albums", albumsUrl) } // Overwrite the public album url in Configuration File err = viper.WriteConfig() if err != nil { fmt.Println("Error saving config: %v\n", err) } }, }