Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jenkinsci
sub-group
Jenkins Cli
提交
2e9ca38a
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,发现更多精彩内容 >>
提交
2e9ca38a
编写于
8月 25, 2019
作者:
LinuxSuRen
浏览文件
操作
浏览文件
下载
差异文件
Fix the conflict from Makefile
上级
8400801e
bae841ff
变更
34
隐藏空白更改
内联
并排
Showing
34 changed file
with
188 addition
and
35 deletion
+188
-35
.gitignore
.gitignore
+3
-1
Jenkinsfile
Jenkinsfile
+7
-5
Makefile
Makefile
+5
-0
app/cmd/center.go
app/cmd/center.go
+1
-1
app/cmd/config.go
app/cmd/config.go
+6
-0
app/cmd/config_edit.go
app/cmd/config_edit.go
+1
-1
app/cmd/job_build.go
app/cmd/job_build.go
+1
-1
app/cmd/job_create.go
app/cmd/job_create.go
+1
-1
app/cmd/job_delete.go
app/cmd/job_delete.go
+1
-1
app/cmd/job_edit.go
app/cmd/job_edit.go
+1
-1
app/cmd/job_history.go
app/cmd/job_history.go
+1
-1
app/cmd/job_log.go
app/cmd/job_log.go
+1
-1
app/cmd/job_param.go
app/cmd/job_param.go
+1
-1
app/cmd/job_search.go
app/cmd/job_search.go
+1
-1
app/cmd/job_stop.go
app/cmd/job_stop.go
+1
-1
app/cmd/job_type.go
app/cmd/job_type.go
+1
-1
app/cmd/plugin_check.go
app/cmd/plugin_check.go
+1
-1
app/cmd/plugin_install.go
app/cmd/plugin_install.go
+1
-1
app/cmd/plugin_list.go
app/cmd/plugin_list.go
+1
-1
app/cmd/plugin_open.go
app/cmd/plugin_open.go
+1
-1
app/cmd/plugin_search.go
app/cmd/plugin_search.go
+1
-1
app/cmd/plugin_uninstall.go
app/cmd/plugin_uninstall.go
+1
-1
app/cmd/plugin_upload.go
app/cmd/plugin_upload.go
+4
-2
app/cmd/queue.go
app/cmd/queue.go
+1
-1
app/cmd/restart.go
app/cmd/restart.go
+1
-1
app/cmd/root.go
app/cmd/root.go
+63
-1
app/cmd/root_test.go
app/cmd/root_test.go
+55
-0
app/cmd/setup_test.go
app/cmd/setup_test.go
+16
-0
app/cmd/user.go
app/cmd/user.go
+1
-1
app/cmd/user_create.go
app/cmd/user_create.go
+1
-1
app/cmd/user_delete.go
app/cmd/user_delete.go
+1
-1
app/cmd/user_edit.go
app/cmd/user_edit.go
+1
-1
app/cmd/user_token.go
app/cmd/user_token.go
+1
-1
util/setup_test.go
util/setup_test.go
+4
-1
未找到文件。
.gitignore
浏览文件 @
2e9ca38a
...
@@ -12,4 +12,6 @@
...
@@ -12,4 +12,6 @@
*.out
*.out
bin/
bin/
release/
release/
\ No newline at end of file
*.xml
Jenkinsfile
浏览文件 @
2e9ca38a
...
@@ -33,13 +33,15 @@ pipeline {
...
@@ -33,13 +33,15 @@ pipeline {
stage
(
'Test'
)
{
stage
(
'Test'
)
{
steps
{
steps
{
container
(
'golang'
)
{
container
(
'golang'
)
{
sh
label:
'go test'
,
script:
'''
sh
label:
'go test'
,
script:
'make test'
go test ./util/... -v
go test ./client/... -v
go test ./app/... -v
'''
}
}
}
}
}
}
}
}
post
{
always
{
junit
allowEmptyResults:
true
,
testResults:
"*/**/*.xml"
}
}
}
}
\ No newline at end of file
Makefile
浏览文件 @
2e9ca38a
...
@@ -34,6 +34,11 @@ clean: ## Clean the generated artifacts
...
@@ -34,6 +34,11 @@ clean: ## Clean the generated artifacts
copy
:
darwin
copy
:
darwin
sudo cp
bin/darwin/
$(NAME)
$(
shell
which jcli
)
sudo cp
bin/darwin/
$(NAME)
$(
shell
which jcli
)
test
:
go
test
./util/...
-v
-coverprofile
bin/testcover-util.log
go
test
./client/...
-v
-coverprofile
bin/testcover-client.log
go
test
./app/...
-v
-coverprofile
bin/testcover-app.log
dep
:
dep
:
go get github.com/AlecAivazis/survey/v2
go get github.com/AlecAivazis/survey/v2
go get github.com/gosuri/uiprogress
go get github.com/gosuri/uiprogress
...
...
app/cmd/center.go
浏览文件 @
2e9ca38a
...
@@ -28,7 +28,7 @@ var centerCmd = &cobra.Command{
...
@@ -28,7 +28,7 @@ var centerCmd = &cobra.Command{
Short
:
"Manage your update center"
,
Short
:
"Manage your update center"
,
Long
:
`Manage your update center`
,
Long
:
`Manage your update center`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
printJenkinsStatus
(
jenkins
)
printJenkinsStatus
(
jenkins
)
for
{
for
{
...
...
app/cmd/config.go
浏览文件 @
2e9ca38a
...
@@ -50,9 +50,15 @@ type JenkinsServer struct {
...
@@ -50,9 +50,15 @@ type JenkinsServer struct {
Description
string
`yaml:"description"`
Description
string
`yaml:"description"`
}
}
type
PreHook
struct
{
Path
string
`yaml:"path"`
Command
string
`yaml:"cmd"`
}
type
Config
struct
{
type
Config
struct
{
Current
string
`yaml:"current"`
Current
string
`yaml:"current"`
JenkinsServers
[]
JenkinsServer
`yaml:"jenkins_servers"`
JenkinsServers
[]
JenkinsServer
`yaml:"jenkins_servers"`
PreHooks
[]
PreHook
`yaml:"preHooks"`
}
}
func
setCurrentJenkins
(
name
string
)
{
func
setCurrentJenkins
(
name
string
)
{
...
...
app/cmd/config_edit.go
浏览文件 @
2e9ca38a
...
@@ -19,7 +19,7 @@ var configEditCmd = &cobra.Command{
...
@@ -19,7 +19,7 @@ var configEditCmd = &cobra.Command{
Short
:
"Edit a Jenkins config"
,
Short
:
"Edit a Jenkins config"
,
Long
:
`Edit a Jenkins config`
,
Long
:
`Edit a Jenkins config`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
current
:=
getCurrentJenkins
()
current
:=
getCurrentJenkins
FromOptionsOrDie
()
configPath
:=
configOptions
.
ConfigFileLocation
configPath
:=
configOptions
.
ConfigFileLocation
var
data
[]
byte
var
data
[]
byte
...
...
app/cmd/job_build.go
浏览文件 @
2e9ca38a
...
@@ -42,7 +42,7 @@ var jobBuildCmd = &cobra.Command{
...
@@ -42,7 +42,7 @@ var jobBuildCmd = &cobra.Command{
return
return
}
}
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_create.go
浏览文件 @
2e9ca38a
...
@@ -29,7 +29,7 @@ var jobCreateCmd = &cobra.Command{
...
@@ -29,7 +29,7 @@ var jobCreateCmd = &cobra.Command{
jobName
:=
args
[
0
]
jobName
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_delete.go
浏览文件 @
2e9ca38a
...
@@ -34,7 +34,7 @@ var jobDeleteCmd = &cobra.Command{
...
@@ -34,7 +34,7 @@ var jobDeleteCmd = &cobra.Command{
return
return
}
}
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_edit.go
浏览文件 @
2e9ca38a
...
@@ -42,7 +42,7 @@ var jobEditCmd = &cobra.Command{
...
@@ -42,7 +42,7 @@ var jobEditCmd = &cobra.Command{
log
.
Fatal
(
err
)
log
.
Fatal
(
err
)
}
}
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_history.go
浏览文件 @
2e9ca38a
...
@@ -33,7 +33,7 @@ var jobHistoryCmd = &cobra.Command{
...
@@ -33,7 +33,7 @@ var jobHistoryCmd = &cobra.Command{
jobName
:=
args
[
0
]
jobName
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_log.go
浏览文件 @
2e9ca38a
...
@@ -38,7 +38,7 @@ var jobLogCmd = &cobra.Command{
...
@@ -38,7 +38,7 @@ var jobLogCmd = &cobra.Command{
}
}
name
:=
args
[
0
]
name
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_param.go
浏览文件 @
2e9ca38a
...
@@ -34,7 +34,7 @@ var jobParamCmd = &cobra.Command{
...
@@ -34,7 +34,7 @@ var jobParamCmd = &cobra.Command{
}
}
name
:=
args
[
0
]
name
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_search.go
浏览文件 @
2e9ca38a
...
@@ -31,7 +31,7 @@ var jobSearchCmd = &cobra.Command{
...
@@ -31,7 +31,7 @@ var jobSearchCmd = &cobra.Command{
keyword
:=
args
[
0
]
keyword
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_stop.go
浏览文件 @
2e9ca38a
...
@@ -43,7 +43,7 @@ var jobStopCmd = &cobra.Command{
...
@@ -43,7 +43,7 @@ var jobStopCmd = &cobra.Command{
return
return
}
}
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/job_type.go
浏览文件 @
2e9ca38a
...
@@ -26,7 +26,7 @@ var jobTypeCmd = &cobra.Command{
...
@@ -26,7 +26,7 @@ var jobTypeCmd = &cobra.Command{
Short
:
"Print the types of job which in your Jenkins"
,
Short
:
"Print the types of job which in your Jenkins"
,
Long
:
`Print the types of job which in your Jenkins`
,
Long
:
`Print the types of job which in your Jenkins`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
JobClient
{}
jclient
:=
&
client
.
JobClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/plugin_check.go
浏览文件 @
2e9ca38a
...
@@ -19,7 +19,7 @@ var pluginCheckCmd = &cobra.Command{
...
@@ -19,7 +19,7 @@ var pluginCheckCmd = &cobra.Command{
Short
:
"Checkout update center server"
,
Short
:
"Checkout update center server"
,
Long
:
`Checkout update center server`
,
Long
:
`Checkout update center server`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
PluginManager
{}
jclient
:=
&
client
.
PluginManager
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/plugin_install.go
浏览文件 @
2e9ca38a
...
@@ -18,7 +18,7 @@ var pluginInstallCmd = &cobra.Command{
...
@@ -18,7 +18,7 @@ var pluginInstallCmd = &cobra.Command{
Short
:
"Install the plugins"
,
Short
:
"Install the plugins"
,
Long
:
`Install the plugins`
,
Long
:
`Install the plugins`
,
Run
:
func
(
_
*
cobra
.
Command
,
args
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
args
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
PluginManager
{}
jclient
:=
&
client
.
PluginManager
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/plugin_list.go
浏览文件 @
2e9ca38a
...
@@ -31,7 +31,7 @@ var pluginListCmd = &cobra.Command{
...
@@ -31,7 +31,7 @@ var pluginListCmd = &cobra.Command{
Example
:
` jcli plugin list --filter name=github
Example
:
` jcli plugin list --filter name=github
jcli plugin list --filter hasUpdate`
,
jcli plugin list --filter hasUpdate`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
PluginManager
{}
jclient
:=
&
client
.
PluginManager
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/plugin_open.go
浏览文件 @
2e9ca38a
...
@@ -16,7 +16,7 @@ var pluginOpenCmd = &cobra.Command{
...
@@ -16,7 +16,7 @@ var pluginOpenCmd = &cobra.Command{
Short
:
"Openout update center server"
,
Short
:
"Openout update center server"
,
Long
:
`Openout update center server`
,
Long
:
`Openout update center server`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
if
jenkins
.
URL
!=
""
{
if
jenkins
.
URL
!=
""
{
open
(
fmt
.
Sprintf
(
"%s/pluginManager"
,
jenkins
.
URL
))
open
(
fmt
.
Sprintf
(
"%s/pluginManager"
,
jenkins
.
URL
))
...
...
app/cmd/plugin_search.go
浏览文件 @
2e9ca38a
...
@@ -34,7 +34,7 @@ var pluginSearchCmd = &cobra.Command{
...
@@ -34,7 +34,7 @@ var pluginSearchCmd = &cobra.Command{
keyword
:=
args
[
0
]
keyword
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
PluginManager
{}
jclient
:=
&
client
.
PluginManager
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/plugin_uninstall.go
浏览文件 @
2e9ca38a
...
@@ -24,7 +24,7 @@ var pluginUninstallCmd = &cobra.Command{
...
@@ -24,7 +24,7 @@ var pluginUninstallCmd = &cobra.Command{
pluginName
=
args
[
0
]
pluginName
=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
PluginManager
{}
jclient
:=
&
client
.
PluginManager
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/plugin_upload.go
浏览文件 @
2e9ca38a
...
@@ -40,7 +40,7 @@ var pluginUploadCmd = &cobra.Command{
...
@@ -40,7 +40,7 @@ var pluginUploadCmd = &cobra.Command{
Long
:
`Upload a plugin from local filesystem or remote URL to your Jenkins`
,
Long
:
`Upload a plugin from local filesystem or remote URL to your Jenkins`
,
Example
:
` jcli plugin upload --remote https://server/sample.hpi
Example
:
` jcli plugin upload --remote https://server/sample.hpi
jcli plugin upload sample.hpi`
,
jcli plugin upload sample.hpi`
,
PreRun
:
func
(
_
*
cobra
.
Command
,
args
[]
string
)
{
PreRun
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
if
pluginUploadOption
.
Remote
!=
""
{
if
pluginUploadOption
.
Remote
!=
""
{
file
,
err
:=
ioutil
.
TempFile
(
"."
,
"jcli-plugin"
)
file
,
err
:=
ioutil
.
TempFile
(
"."
,
"jcli-plugin"
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -70,6 +70,8 @@ var pluginUploadCmd = &cobra.Command{
...
@@ -70,6 +70,8 @@ var pluginUploadCmd = &cobra.Command{
log
.
Fatal
(
err
)
log
.
Fatal
(
err
)
}
}
}
else
if
len
(
args
)
==
0
{
}
else
if
len
(
args
)
==
0
{
executePreCmd
(
cmd
,
args
)
path
,
_
:=
os
.
Getwd
()
path
,
_
:=
os
.
Getwd
()
dirName
:=
filepath
.
Base
(
path
)
dirName
:=
filepath
.
Base
(
path
)
dirName
=
strings
.
Replace
(
dirName
,
"-plugin"
,
""
,
-
1
)
dirName
=
strings
.
Replace
(
dirName
,
"-plugin"
,
""
,
-
1
)
...
@@ -81,7 +83,7 @@ var pluginUploadCmd = &cobra.Command{
...
@@ -81,7 +83,7 @@ var pluginUploadCmd = &cobra.Command{
}
}
},
},
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
PluginManager
{}
jclient
:=
&
client
.
PluginManager
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/queue.go
浏览文件 @
2e9ca38a
...
@@ -24,7 +24,7 @@ var queueCmd = &cobra.Command{
...
@@ -24,7 +24,7 @@ var queueCmd = &cobra.Command{
Short
:
"Print the queue of your Jenkins"
,
Short
:
"Print the queue of your Jenkins"
,
Long
:
`Print the queue of your Jenkins`
,
Long
:
`Print the queue of your Jenkins`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
QueueClient
{}
jclient
:=
&
client
.
QueueClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/restart.go
浏览文件 @
2e9ca38a
...
@@ -25,7 +25,7 @@ var restartCmd = &cobra.Command{
...
@@ -25,7 +25,7 @@ var restartCmd = &cobra.Command{
Short
:
"Restart your Jenkins"
,
Short
:
"Restart your Jenkins"
,
Long
:
`Restart your Jenkins`
,
Long
:
`Restart your Jenkins`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
if
!
restartOption
.
Batch
{
if
!
restartOption
.
Batch
{
confirm
:=
false
confirm
:=
false
prompt
:=
&
survey
.
Confirm
{
prompt
:=
&
survey
.
Confirm
{
...
...
app/cmd/root.go
浏览文件 @
2e9ca38a
...
@@ -4,12 +4,16 @@ import (
...
@@ -4,12 +4,16 @@ import (
"fmt"
"fmt"
"log"
"log"
"os"
"os"
"os/exec"
"strings"
"github.com/jenkins-zh/jenkins-cli/app"
"github.com/jenkins-zh/jenkins-cli/app"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
// RootOptions is a global option for whole cli
type
RootOptions
struct
{
type
RootOptions
struct
{
Jenkins
string
Version
bool
Version
bool
Debug
bool
Debug
bool
}
}
...
@@ -23,7 +27,7 @@ var rootCmd = &cobra.Command{
...
@@ -23,7 +27,7 @@ var rootCmd = &cobra.Command{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
fmt
.
Println
(
"Jenkins CLI (jcli) manage your Jenkins"
)
fmt
.
Println
(
"Jenkins CLI (jcli) manage your Jenkins"
)
current
:=
getCurrentJenkins
()
current
:=
getCurrentJenkins
FromOptionsOrDie
()
if
current
!=
nil
{
if
current
!=
nil
{
fmt
.
Println
(
"Current Jenkins is:"
,
current
.
Name
)
fmt
.
Println
(
"Current Jenkins is:"
,
current
.
Name
)
}
else
{
}
else
{
...
@@ -48,6 +52,7 @@ var rootOptions RootOptions
...
@@ -48,6 +52,7 @@ var rootOptions RootOptions
func
init
()
{
func
init
()
{
cobra
.
OnInitialize
(
initConfig
)
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
.
Version
,
"version"
,
"v"
,
false
,
"Print the version of Jenkins CLI"
)
rootCmd
.
PersistentFlags
()
.
BoolVarP
(
&
rootOptions
.
Debug
,
"debug"
,
""
,
false
,
"Print the output into debug.html"
)
rootCmd
.
PersistentFlags
()
.
BoolVarP
(
&
rootOptions
.
Debug
,
"debug"
,
""
,
false
,
"Print the output into debug.html"
)
}
}
...
@@ -62,3 +67,60 @@ func initConfig() {
...
@@ -62,3 +67,60 @@ func initConfig() {
log
.
Fatalf
(
"Config file is invalid: %v"
,
err
)
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
}
func
getCmdPath
(
cmd
*
cobra
.
Command
)
string
{
current
:=
cmd
.
Use
if
cmd
.
HasParent
()
{
parentName
:=
getCmdPath
(
cmd
.
Parent
())
if
parentName
==
""
{
return
current
}
return
fmt
.
Sprintf
(
"%s.%s"
,
parentName
,
current
)
}
// don't need the name of root cmd
return
""
}
func
executePreCmd
(
cmd
*
cobra
.
Command
,
_
[]
string
)
{
config
:=
getConfig
()
if
config
==
nil
{
log
.
Fatal
(
"Cannot find config file"
)
return
}
path
:=
getCmdPath
(
cmd
)
for
_
,
preHook
:=
range
config
.
PreHooks
{
if
path
!=
preHook
.
Path
{
continue
}
execute
(
preHook
.
Command
)
}
}
func
execute
(
command
string
)
{
array
:=
strings
.
Split
(
command
,
" "
)
cmd
:=
exec
.
Command
(
array
[
0
],
array
[
1
:
]
...
)
cmd
.
Stdout
=
os
.
Stdout
if
err
:=
cmd
.
Run
();
err
!=
nil
{
log
.
Fatal
(
err
)
}
}
app/cmd/root_test.go
0 → 100644
浏览文件 @
2e9ca38a
package
cmd
import
(
"github.com/golang/mock/gomock"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/gomega"
"github.com/spf13/cobra"
)
var
_
=
Describe
(
"Root cmd test"
,
func
()
{
var
(
ctrl
*
gomock
.
Controller
rootCmd
*
cobra
.
Command
)
BeforeEach
(
func
()
{
ctrl
=
gomock
.
NewController
(
GinkgoT
())
rootCmd
=
&
cobra
.
Command
{
Use
:
"root"
}
})
AfterEach
(
func
()
{
ctrl
.
Finish
()
})
Context
(
"PreHook test"
,
func
()
{
It
(
"only with root cmd"
,
func
()
{
path
:=
getCmdPath
(
rootCmd
)
Expect
(
path
)
.
To
(
Equal
(
""
))
})
It
(
"one sub cmd"
,
func
()
{
subCmd
:=
&
cobra
.
Command
{
Use
:
"sub"
,
}
rootCmd
.
AddCommand
(
subCmd
)
path
:=
getCmdPath
(
subCmd
)
Expect
(
path
)
.
To
(
Equal
(
"sub"
))
})
It
(
"two sub cmds"
,
func
()
{
sub1Cmd
:=
&
cobra
.
Command
{
Use
:
"sub1"
,
}
sub2Cmd
:=
&
cobra
.
Command
{
Use
:
"sub2"
,
}
rootCmd
.
AddCommand
(
sub1Cmd
)
sub1Cmd
.
AddCommand
(
sub2Cmd
)
path
:=
getCmdPath
(
sub2Cmd
)
Expect
(
path
)
.
To
(
Equal
(
"sub1.sub2"
))
})
})
})
app/cmd/setup_test.go
0 → 100644
浏览文件 @
2e9ca38a
package
cmd
import
(
"testing"
"github.com/onsi/ginkgo/reporters"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/gomega"
)
func
TestApp
(
t
*
testing
.
T
)
{
RegisterFailHandler
(
Fail
)
junitReporter
:=
reporters
.
NewJUnitReporter
(
"test-app.xml"
)
RunSpecsWithDefaultAndCustomReporters
(
t
,
"app/cmd"
,
[]
Reporter
{
junitReporter
})
}
app/cmd/user.go
浏览文件 @
2e9ca38a
...
@@ -24,7 +24,7 @@ var userCmd = &cobra.Command{
...
@@ -24,7 +24,7 @@ var userCmd = &cobra.Command{
Short
:
"Print the user of your Jenkins"
,
Short
:
"Print the user of your Jenkins"
,
Long
:
`Print the user of your Jenkins`
,
Long
:
`Print the user of your Jenkins`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
UserClient
{}
jclient
:=
&
client
.
UserClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/user_create.go
浏览文件 @
2e9ca38a
...
@@ -29,7 +29,7 @@ var userCreateCmd = &cobra.Command{
...
@@ -29,7 +29,7 @@ var userCreateCmd = &cobra.Command{
username
:=
args
[
0
]
username
:=
args
[
0
]
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
UserClient
{}
jclient
:=
&
client
.
UserClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/user_delete.go
浏览文件 @
2e9ca38a
...
@@ -35,7 +35,7 @@ var userDeleteCmd = &cobra.Command{
...
@@ -35,7 +35,7 @@ var userDeleteCmd = &cobra.Command{
return
return
}
}
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
UserClient
{}
jclient
:=
&
client
.
UserClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/user_edit.go
浏览文件 @
2e9ca38a
...
@@ -24,7 +24,7 @@ var userEditCmd = &cobra.Command{
...
@@ -24,7 +24,7 @@ var userEditCmd = &cobra.Command{
Short
:
"Edit the user of your Jenkins"
,
Short
:
"Edit the user of your Jenkins"
,
Long
:
`Edit the user of your Jenkins`
,
Long
:
`Edit the user of your Jenkins`
,
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
Run
:
func
(
_
*
cobra
.
Command
,
_
[]
string
)
{
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
UserClient
{}
jclient
:=
&
client
.
UserClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
app/cmd/user_token.go
浏览文件 @
2e9ca38a
...
@@ -31,7 +31,7 @@ var userTokenCmd = &cobra.Command{
...
@@ -31,7 +31,7 @@ var userTokenCmd = &cobra.Command{
return
return
}
}
jenkins
:=
getCurrentJenkins
()
jenkins
:=
getCurrentJenkins
FromOptionsOrDie
()
jclient
:=
&
client
.
UserClient
{}
jclient
:=
&
client
.
UserClient
{}
jclient
.
URL
=
jenkins
.
URL
jclient
.
URL
=
jenkins
.
URL
jclient
.
UserName
=
jenkins
.
UserName
jclient
.
UserName
=
jenkins
.
UserName
...
...
util/setup_test.go
浏览文件 @
2e9ca38a
...
@@ -3,11 +3,14 @@ package util
...
@@ -3,11 +3,14 @@ package util
import
(
import
(
"testing"
"testing"
"github.com/onsi/ginkgo/reporters"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/ginkgo"
.
"github.com/onsi/gomega"
.
"github.com/onsi/gomega"
)
)
func
TestUtils
(
t
*
testing
.
T
)
{
func
TestUtils
(
t
*
testing
.
T
)
{
RegisterFailHandler
(
Fail
)
RegisterFailHandler
(
Fail
)
RunSpecs
(
t
,
"jcli utils test"
)
junitReporter
:=
reporters
.
NewJUnitReporter
(
"test-utils.xml"
)
RunSpecsWithDefaultAndCustomReporters
(
t
,
"util"
,
[]
Reporter
{
junitReporter
})
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录