github.com/ungtb10d/cli/v2@v2.0.0-20221110210412-98537dd9d6a1/pkg/cmd/config/config.go (about)

     1  package config
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/ungtb10d/cli/v2/internal/config"
     8  	cmdGet "github.com/ungtb10d/cli/v2/pkg/cmd/config/get"
     9  	cmdList "github.com/ungtb10d/cli/v2/pkg/cmd/config/list"
    10  	cmdSet "github.com/ungtb10d/cli/v2/pkg/cmd/config/set"
    11  	"github.com/ungtb10d/cli/v2/pkg/cmdutil"
    12  	"github.com/spf13/cobra"
    13  )
    14  
    15  func NewCmdConfig(f *cmdutil.Factory) *cobra.Command {
    16  	longDoc := strings.Builder{}
    17  	longDoc.WriteString("Display or change configuration settings for gh.\n\n")
    18  	longDoc.WriteString("Current respected settings:\n")
    19  	for _, co := range config.ConfigOptions() {
    20  		longDoc.WriteString(fmt.Sprintf("- %s: %s", co.Key, co.Description))
    21  		if co.DefaultValue != "" {
    22  			longDoc.WriteString(fmt.Sprintf(" (default: %q)", co.DefaultValue))
    23  		}
    24  		longDoc.WriteRune('\n')
    25  	}
    26  
    27  	cmd := &cobra.Command{
    28  		Use:   "config <command>",
    29  		Short: "Manage configuration for gh",
    30  		Long:  longDoc.String(),
    31  	}
    32  
    33  	cmdutil.DisableAuthCheck(cmd)
    34  
    35  	cmd.AddCommand(cmdGet.NewCmdConfigGet(f, nil))
    36  	cmd.AddCommand(cmdSet.NewCmdConfigSet(f, nil))
    37  	cmd.AddCommand(cmdList.NewCmdConfigList(f, nil))
    38  
    39  	return cmd
    40  }