From e4554a02acd59a0c59487fe44a5e430f9e343b5a Mon Sep 17 00:00:00 2001 From: Rick Date: Fri, 23 Aug 2019 09:23:23 +0800 Subject: [PATCH] Add a global Jenkins name option --- app/cmd/center.go | 2 +- app/cmd/config_edit.go | 2 +- app/cmd/job_build.go | 2 +- app/cmd/job_create.go | 2 +- app/cmd/job_delete.go | 2 +- app/cmd/job_edit.go | 2 +- app/cmd/job_history.go | 2 +- app/cmd/job_log.go | 2 +- app/cmd/job_param.go | 2 +- app/cmd/job_search.go | 2 +- app/cmd/job_stop.go | 2 +- app/cmd/job_type.go | 2 +- app/cmd/plugin_check.go | 2 +- app/cmd/plugin_install.go | 2 +- app/cmd/plugin_list.go | 2 +- app/cmd/plugin_open.go | 2 +- app/cmd/plugin_search.go | 2 +- app/cmd/plugin_uninstall.go | 2 +- app/cmd/plugin_upload.go | 2 +- app/cmd/queue.go | 2 +- app/cmd/restart.go | 2 +- app/cmd/root.go | 22 +++++++++++++++++++++- app/cmd/user.go | 2 +- app/cmd/user_create.go | 2 +- app/cmd/user_delete.go | 2 +- app/cmd/user_edit.go | 2 +- app/cmd/user_token.go | 2 +- 27 files changed, 47 insertions(+), 27 deletions(-) diff --git a/app/cmd/center.go b/app/cmd/center.go index 9e2a508..8bba36d 100644 --- a/app/cmd/center.go +++ b/app/cmd/center.go @@ -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 { diff --git a/app/cmd/config_edit.go b/app/cmd/config_edit.go index 6a0eece..a9b2270 100644 --- a/app/cmd/config_edit.go +++ b/app/cmd/config_edit.go @@ -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 diff --git a/app/cmd/job_build.go b/app/cmd/job_build.go index 3da0a49..20fd716 100644 --- a/app/cmd/job_build.go +++ b/app/cmd/job_build.go @@ -42,7 +42,7 @@ var jobBuildCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_create.go b/app/cmd/job_create.go index a344f27..b643e8d 100644 --- a/app/cmd/job_create.go +++ b/app/cmd/job_create.go @@ -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 diff --git a/app/cmd/job_delete.go b/app/cmd/job_delete.go index 7dad783..2bd1e7b 100644 --- a/app/cmd/job_delete.go +++ b/app/cmd/job_delete.go @@ -34,7 +34,7 @@ var jobDeleteCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_edit.go b/app/cmd/job_edit.go index 143da1a..71091f8 100644 --- a/app/cmd/job_edit.go +++ b/app/cmd/job_edit.go @@ -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 diff --git a/app/cmd/job_history.go b/app/cmd/job_history.go index c6f21fe..94b8d1d 100644 --- a/app/cmd/job_history.go +++ b/app/cmd/job_history.go @@ -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 diff --git a/app/cmd/job_log.go b/app/cmd/job_log.go index 0918ad2..168d68e 100644 --- a/app/cmd/job_log.go +++ b/app/cmd/job_log.go @@ -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 diff --git a/app/cmd/job_param.go b/app/cmd/job_param.go index 99d9cb2..3017367 100644 --- a/app/cmd/job_param.go +++ b/app/cmd/job_param.go @@ -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 diff --git a/app/cmd/job_search.go b/app/cmd/job_search.go index 12eedab..0ceb01e 100644 --- a/app/cmd/job_search.go +++ b/app/cmd/job_search.go @@ -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 diff --git a/app/cmd/job_stop.go b/app/cmd/job_stop.go index 367b3cb..ea6ed27 100644 --- a/app/cmd/job_stop.go +++ b/app/cmd/job_stop.go @@ -43,7 +43,7 @@ var jobStopCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.JobClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/job_type.go b/app/cmd/job_type.go index b3ed5a9..3305976 100644 --- a/app/cmd/job_type.go +++ b/app/cmd/job_type.go @@ -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 diff --git a/app/cmd/plugin_check.go b/app/cmd/plugin_check.go index b915e70..defafd1 100644 --- a/app/cmd/plugin_check.go +++ b/app/cmd/plugin_check.go @@ -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 diff --git a/app/cmd/plugin_install.go b/app/cmd/plugin_install.go index 5f51341..2be9a8b 100644 --- a/app/cmd/plugin_install.go +++ b/app/cmd/plugin_install.go @@ -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 diff --git a/app/cmd/plugin_list.go b/app/cmd/plugin_list.go index 745925e..8ee4900 100644 --- a/app/cmd/plugin_list.go +++ b/app/cmd/plugin_list.go @@ -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 diff --git a/app/cmd/plugin_open.go b/app/cmd/plugin_open.go index 3e17045..2d4e97d 100644 --- a/app/cmd/plugin_open.go +++ b/app/cmd/plugin_open.go @@ -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)) diff --git a/app/cmd/plugin_search.go b/app/cmd/plugin_search.go index 0c0a2ff..37ce9c7 100644 --- a/app/cmd/plugin_search.go +++ b/app/cmd/plugin_search.go @@ -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 diff --git a/app/cmd/plugin_uninstall.go b/app/cmd/plugin_uninstall.go index 3544fce..eb945fa 100644 --- a/app/cmd/plugin_uninstall.go +++ b/app/cmd/plugin_uninstall.go @@ -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 diff --git a/app/cmd/plugin_upload.go b/app/cmd/plugin_upload.go index 297d859..741d487 100644 --- a/app/cmd/plugin_upload.go +++ b/app/cmd/plugin_upload.go @@ -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 diff --git a/app/cmd/queue.go b/app/cmd/queue.go index e8e947c..6c810f4 100644 --- a/app/cmd/queue.go +++ b/app/cmd/queue.go @@ -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 diff --git a/app/cmd/restart.go b/app/cmd/restart.go index 49b0171..2b948e2 100644 --- a/app/cmd/restart.go +++ b/app/cmd/restart.go @@ -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{ diff --git a/app/cmd/root.go b/app/cmd/root.go index 7f6c4d0..0206a4d 100644 --- a/app/cmd/root.go +++ b/app/cmd/root.go @@ -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 +} diff --git a/app/cmd/user.go b/app/cmd/user.go index 535d3a9..6de12a6 100644 --- a/app/cmd/user.go +++ b/app/cmd/user.go @@ -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 diff --git a/app/cmd/user_create.go b/app/cmd/user_create.go index 1258da2..0a3caf2 100644 --- a/app/cmd/user_create.go +++ b/app/cmd/user_create.go @@ -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 diff --git a/app/cmd/user_delete.go b/app/cmd/user_delete.go index 1772041..cde6a8b 100644 --- a/app/cmd/user_delete.go +++ b/app/cmd/user_delete.go @@ -35,7 +35,7 @@ var userDeleteCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName diff --git a/app/cmd/user_edit.go b/app/cmd/user_edit.go index 90478d5..0954790 100644 --- a/app/cmd/user_edit.go +++ b/app/cmd/user_edit.go @@ -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 diff --git a/app/cmd/user_token.go b/app/cmd/user_token.go index 663c27e..5a13a60 100644 --- a/app/cmd/user_token.go +++ b/app/cmd/user_token.go @@ -31,7 +31,7 @@ var userTokenCmd = &cobra.Command{ return } - jenkins := getCurrentJenkins() + jenkins := getCurrentJenkinsFromOptionsOrDie() jclient := &client.UserClient{} jclient.URL = jenkins.URL jclient.UserName = jenkins.UserName -- GitLab