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)
}
},
}