Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jenkinsci
sub-group
Jenkins Cli
提交
fd9f82fc
J
Jenkins Cli
项目概览
jenkinsci
/
sub-group
/
Jenkins Cli
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
Jenkins Cli
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fd9f82fc
编写于
6月 29, 2019
作者:
LinuxSuRen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add select sub-cmd to select one jenkins as current
上级
2a1c5fd1
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
70 addition
and
16 deletion
+70
-16
app/cmd/config.go
app/cmd/config.go
+37
-16
app/cmd/config_select.go
app/cmd/config_select.go
+33
-0
未找到文件。
app/cmd/config.go
浏览文件 @
fd9f82fc
package
cmd
package
cmd
import
(
import
(
"errors"
"fmt"
"fmt"
"io/ioutil"
"io/ioutil"
"log"
"log"
...
@@ -35,6 +36,12 @@ var configCmd = &cobra.Command{
...
@@ -35,6 +36,12 @@ var configCmd = &cobra.Command{
Use
:
"config"
,
Use
:
"config"
,
Short
:
"Manage the config of jcli"
,
Short
:
"Manage the config of jcli"
,
Long
:
`Manage the config of jcli`
,
Long
:
`Manage the config of jcli`
,
Args
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
error
{
if
len
(
args
)
==
0
{
return
errors
.
New
(
"requires at least one argument"
)
}
return
nil
},
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
current
:=
getCurrentJenkins
()
current
:=
getCurrentJenkins
()
if
configOptions
.
Show
{
if
configOptions
.
Show
{
...
@@ -63,24 +70,10 @@ var configCmd = &cobra.Command{
...
@@ -63,24 +70,10 @@ var configCmd = &cobra.Command{
}
}
if
configOptions
.
Current
!=
""
{
if
configOptions
.
Current
!=
""
{
found
:=
false
setCurrentJenkins
(
configOptions
.
Current
)
for
_
,
jenkins
:=
range
getConfig
()
.
JenkinsServers
{
if
jenkins
.
Name
==
configOptions
.
Current
{
found
=
true
break
}
}
if
found
{
config
.
Current
=
configOptions
.
Current
if
err
:=
saveConfig
();
err
!=
nil
{
log
.
Fatal
(
err
)
}
}
else
{
log
.
Fatalf
(
"Cannot found Jenkins by name %s"
,
configOptions
.
Current
)
}
}
}
},
},
Example
:
"jcli config -l"
,
}
}
// JenkinsServer holds the configuration of your Jenkins
// JenkinsServer holds the configuration of your Jenkins
...
@@ -98,6 +91,25 @@ type Config struct {
...
@@ -98,6 +91,25 @@ type Config struct {
JenkinsServers
[]
JenkinsServer
`yaml:"jenkins_servers"`
JenkinsServers
[]
JenkinsServer
`yaml:"jenkins_servers"`
}
}
func
setCurrentJenkins
(
name
string
)
{
found
:=
false
for
_
,
jenkins
:=
range
getConfig
()
.
JenkinsServers
{
if
jenkins
.
Name
==
name
{
found
=
true
break
}
}
if
found
{
config
.
Current
=
name
if
err
:=
saveConfig
();
err
!=
nil
{
log
.
Fatal
(
err
)
}
}
else
{
log
.
Fatalf
(
"Cannot found Jenkins by name %s"
,
name
)
}
}
func
generateSampleConfig
()
([]
byte
,
error
)
{
func
generateSampleConfig
()
([]
byte
,
error
)
{
sampleConfig
:=
Config
{
sampleConfig
:=
Config
{
Current
:
"yourServer"
,
Current
:
"yourServer"
,
...
@@ -119,6 +131,15 @@ func getConfig() Config {
...
@@ -119,6 +131,15 @@ func getConfig() Config {
return
config
return
config
}
}
func
getJenkinsNames
()
[]
string
{
config
:=
getConfig
()
names
:=
make
([]
string
,
0
)
for
_
,
j
:=
range
config
.
JenkinsServers
{
names
=
append
(
names
,
j
.
Name
)
}
return
names
}
func
getCurrentJenkins
()
(
jenkinsServer
*
JenkinsServer
)
{
func
getCurrentJenkins
()
(
jenkinsServer
*
JenkinsServer
)
{
config
:=
getConfig
()
config
:=
getConfig
()
current
:=
config
.
Current
current
:=
config
.
Current
...
...
app/cmd/config_select.go
0 → 100644
浏览文件 @
fd9f82fc
package
cmd
import
(
"github.com/AlecAivazis/survey"
"github.com/spf13/cobra"
)
func
init
()
{
configCmd
.
AddCommand
(
configSelectCmd
)
}
var
configSelectCmd
=
&
cobra
.
Command
{
Use
:
"select"
,
Short
:
"Select one config as current Jenkins"
,
Long
:
`Select one config as current Jenkins`
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
target
:=
""
if
currentJenkins
:=
getCurrentJenkins
();
currentJenkins
!=
nil
{
target
=
currentJenkins
.
Name
}
prompt
:=
&
survey
.
Select
{
Message
:
"Choose a Jenkins as the current one:"
,
Options
:
getJenkinsNames
(),
Default
:
target
,
}
survey
.
AskOne
(
prompt
,
&
target
)
if
target
!=
""
{
setCurrentJenkins
(
target
)
}
},
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录