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  }