github.com/leg100/ots@v0.0.7-0.20210919080622-034055ced4bd/cmd/ots/workspace_show.go (about) 1 package main 2 3 import ( 4 "encoding/json" 5 "fmt" 6 7 "github.com/spf13/cobra" 8 ) 9 10 func WorkspaceShowCommand(config ClientConfig) *cobra.Command { 11 var organization string 12 var workspace string 13 14 cmd := &cobra.Command{ 15 Use: "show [name]", 16 Short: "Show a workspace", 17 Args: cobra.ExactArgs(1), 18 RunE: func(cmd *cobra.Command, args []string) error { 19 workspace = args[0] 20 21 client, err := config.NewClient() 22 if err != nil { 23 return err 24 } 25 26 ws, err := client.Workspaces().Read(cmd.Context(), organization, workspace) 27 if err != nil { 28 return err 29 } 30 31 out, err := json.MarshalIndent(ws, "", " ") 32 if err != nil { 33 return err 34 } 35 36 fmt.Println(string(out)) 37 38 return nil 39 }, 40 } 41 42 cmd.Flags().StringVar(&organization, "organization", "", "Organization workspace belongs to") 43 cmd.MarkFlagRequired("organization") 44 45 return cmd 46 }