From 7f2db58462a231a46a8ac32c179f673d56ca5dda Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Fri, 8 Dec 2023 08:56:10 +0100 Subject: [PATCH] Implemented service list command --- cmd/list.go | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 cmd/list.go diff --git a/cmd/list.go b/cmd/list.go new file mode 100644 index 0000000..730904d --- /dev/null +++ b/cmd/list.go @@ -0,0 +1,63 @@ +/* +Copyright © 2023 Philipp Wolfer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +package cmd + +import ( + "fmt" + + "github.com/spf13/cobra" + "go.uploadedlobster.com/scotty/internal/config" +) + +// listCmd represents the add command +var listCmd = &cobra.Command{ + Use: "list", + Short: "List existing service configurations", + Long: `List existing service configurations.`, + Run: func(cmd *cobra.Command, args []string) { + verbose, _ := cmd.Flags().GetBool("verbose") + for _, s := range config.AllServicesAsList() { + fmt.Printf("%v\n", s.Name) + if verbose { + fmt.Printf("\tbackend: %v\n", s.Backend) + for k, v := range s.ConfigValues { + fmt.Printf("\t%v: %v\n", k, v) + } + fmt.Println() + } + } + }, +} + +func init() { + serviceCmd.AddCommand(listCmd) + + // Here you will define your flags and configuration settings. + + // Cobra supports Persistent Flags which will work for this command + // and all subcommands, e.g.: + // listCmd.PersistentFlags().String("foo", "", "A help for foo") + + // Cobra supports local flags which will only run when this command + // is called directly, e.g.: + listCmd.Flags().BoolP("verbose", "v", false, "Verbose output") +}