config_select.go 848 字节
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
package cmd

import (
	"github.com/AlecAivazis/survey"
	"github.com/spf13/cobra"
)

func init() {
	configCmd.AddCommand(configSelectCmd)
}

var configSelectCmd = &cobra.Command{
LinuxSuRen's avatar
LinuxSuRen 已提交
13
	Use:   "select [<name>]",
14 15 16
	Short: "Select one config as current Jenkins",
	Long:  `Select one config as current Jenkins`,
	Run: func(cmd *cobra.Command, args []string) {
LinuxSuRen's avatar
LinuxSuRen 已提交
17 18
		if len(args) > 0 {
			jenkinsName := args[0]
19

LinuxSuRen's avatar
LinuxSuRen 已提交
20 21 22
			setCurrentJenkins(jenkinsName)
		} else {
			selectByManual()
23 24 25
		}
	},
}
LinuxSuRen's avatar
LinuxSuRen 已提交
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41

func selectByManual() {
	target := ""
	if currentJenkins := getCurrentJenkins(); currentJenkins != nil {
		target = currentJenkins.Name
	}

	prompt := &survey.Select{
		Message: "Choose a Jenkins as the current one:",
		Options: getJenkinsNames(),
		Default: target,
	}
	if err := survey.AskOne(prompt, &target); err == nil && target != "" {
		setCurrentJenkins(target)
	}
}