提交 e4554a02 编写于 作者: LinuxSuRen's avatar LinuxSuRen

Add a global Jenkins name option

上级 f7bd31fe
......@@ -28,7 +28,7 @@ var centerCmd = &cobra.Command{
Short: "Manage your update center",
Long: `Manage your update center`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
printJenkinsStatus(jenkins)
for {
......
......@@ -19,7 +19,7 @@ var configEditCmd = &cobra.Command{
Short: "Edit a Jenkins config",
Long: `Edit a Jenkins config`,
Run: func(_ *cobra.Command, _ []string) {
current := getCurrentJenkins()
current := getCurrentJenkinsFromOptionsOrDie()
configPath := configOptions.ConfigFileLocation
var data []byte
......
......@@ -42,7 +42,7 @@ var jobBuildCmd = &cobra.Command{
return
}
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -29,7 +29,7 @@ var jobCreateCmd = &cobra.Command{
jobName := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -34,7 +34,7 @@ var jobDeleteCmd = &cobra.Command{
return
}
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -42,7 +42,7 @@ var jobEditCmd = &cobra.Command{
log.Fatal(err)
}
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -33,7 +33,7 @@ var jobHistoryCmd = &cobra.Command{
jobName := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -38,7 +38,7 @@ var jobLogCmd = &cobra.Command{
}
name := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -34,7 +34,7 @@ var jobParamCmd = &cobra.Command{
}
name := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -31,7 +31,7 @@ var jobSearchCmd = &cobra.Command{
keyword := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -43,7 +43,7 @@ var jobStopCmd = &cobra.Command{
return
}
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -26,7 +26,7 @@ var jobTypeCmd = &cobra.Command{
Short: "Print the types of job which in your Jenkins",
Long: `Print the types of job which in your Jenkins`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.JobClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -19,7 +19,7 @@ var pluginCheckCmd = &cobra.Command{
Short: "Checkout update center server",
Long: `Checkout update center server`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.PluginManager{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -18,7 +18,7 @@ var pluginInstallCmd = &cobra.Command{
Short: "Install the plugins",
Long: `Install the plugins`,
Run: func(_ *cobra.Command, args []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.PluginManager{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -31,7 +31,7 @@ var pluginListCmd = &cobra.Command{
Example: ` jcli plugin list --filter name=github
jcli plugin list --filter hasUpdate`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.PluginManager{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -16,7 +16,7 @@ var pluginOpenCmd = &cobra.Command{
Short: "Openout update center server",
Long: `Openout update center server`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
if jenkins.URL != "" {
open(fmt.Sprintf("%s/pluginManager", jenkins.URL))
......
......@@ -34,7 +34,7 @@ var pluginSearchCmd = &cobra.Command{
keyword := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.PluginManager{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -24,7 +24,7 @@ var pluginUninstallCmd = &cobra.Command{
pluginName = args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.PluginManager{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -81,7 +81,7 @@ var pluginUploadCmd = &cobra.Command{
}
},
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.PluginManager{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -24,7 +24,7 @@ var queueCmd = &cobra.Command{
Short: "Print the queue of your Jenkins",
Long: `Print the queue of your Jenkins`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.QueueClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -25,7 +25,7 @@ var restartCmd = &cobra.Command{
Short: "Restart your Jenkins",
Long: `Restart your Jenkins`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
if !restartOption.Batch {
confirm := false
prompt := &survey.Confirm{
......
......@@ -9,7 +9,9 @@ import (
"github.com/spf13/cobra"
)
// RootOptions is a global option for whole cli
type RootOptions struct {
Jenkins string
Version bool
Debug bool
}
......@@ -23,7 +25,7 @@ var rootCmd = &cobra.Command{
Run: func(_ *cobra.Command, _ []string) {
fmt.Println("Jenkins CLI (jcli) manage your Jenkins")
current := getCurrentJenkins()
current := getCurrentJenkinsFromOptionsOrDie()
if current != nil {
fmt.Println("Current Jenkins is:", current.Name)
} else {
......@@ -48,6 +50,7 @@ var rootOptions RootOptions
func init() {
cobra.OnInitialize(initConfig)
rootCmd.PersistentFlags().StringVarP(&rootOptions.Jenkins, "jenkins", "j", "", "Select a Jenkins server for this time")
rootCmd.PersistentFlags().BoolVarP(&rootOptions.Version, "version", "v", false, "Print the version of Jenkins CLI")
rootCmd.PersistentFlags().BoolVarP(&rootOptions.Debug, "debug", "", false, "Print the output into debug.html")
}
......@@ -62,3 +65,20 @@ func initConfig() {
log.Fatalf("Config file is invalid: %v", err)
}
}
func getCurrentJenkinsFromOptions() (jenkinsServer *JenkinsServer) {
jenkinsOpt := rootOptions.Jenkins
if jenkinsOpt == "" {
jenkinsServer = getCurrentJenkins()
} else {
jenkinsServer = findJenkinsByName(jenkinsOpt)
}
return
}
func getCurrentJenkinsFromOptionsOrDie() (jenkinsServer *JenkinsServer) {
if jenkinsServer = getCurrentJenkinsFromOptions(); jenkinsServer == nil {
log.Fatal("Cannot found Jenkins by", rootOptions.Jenkins) // TODO not accurate
}
return
}
......@@ -24,7 +24,7 @@ var userCmd = &cobra.Command{
Short: "Print the user of your Jenkins",
Long: `Print the user of your Jenkins`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.UserClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -29,7 +29,7 @@ var userCreateCmd = &cobra.Command{
username := args[0]
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.UserClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -35,7 +35,7 @@ var userDeleteCmd = &cobra.Command{
return
}
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.UserClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -24,7 +24,7 @@ var userEditCmd = &cobra.Command{
Short: "Edit the user of your Jenkins",
Long: `Edit the user of your Jenkins`,
Run: func(_ *cobra.Command, _ []string) {
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.UserClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
......@@ -31,7 +31,7 @@ var userTokenCmd = &cobra.Command{
return
}
jenkins := getCurrentJenkins()
jenkins := getCurrentJenkinsFromOptionsOrDie()
jclient := &client.UserClient{}
jclient.URL = jenkins.URL
jclient.UserName = jenkins.UserName
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册