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

Add option for build history

上级 6855472a
...@@ -9,12 +9,14 @@ import ( ...@@ -9,12 +9,14 @@ import (
) )
type JobLogOption struct { type JobLogOption struct {
History int
} }
var jobLogOption JobLogOption var jobLogOption JobLogOption
func init() { func init() {
jobCmd.AddCommand(jobLogCmd) jobCmd.AddCommand(jobLogCmd)
jobLogCmd.PersistentFlags().IntVarP(&jobLogOption.History, "history", "s", -1, "Specific build history of log")
} }
var jobLogCmd = &cobra.Command{ var jobLogCmd = &cobra.Command{
...@@ -34,15 +36,15 @@ var jobLogCmd = &cobra.Command{ ...@@ -34,15 +36,15 @@ var jobLogCmd = &cobra.Command{
jclient.Proxy = jenkins.Proxy jclient.Proxy = jenkins.Proxy
jclient.ProxyAuth = jenkins.ProxyAuth jclient.ProxyAuth = jenkins.ProxyAuth
printLog(jclient, jobOption.Name, 0) printLog(jclient, jobOption.Name, jobLogOption.History, 0)
}, },
} }
func printLog(jclient *client.JobClient, jobName string, start int64) { func printLog(jclient *client.JobClient, jobName string, history int, start int64) {
if status, err := jclient.Log(jobName, start); err == nil { if status, err := jclient.Log(jobName, history, start); err == nil {
fmt.Print(status.Text) fmt.Print(status.Text)
if status.HasMore { if status.HasMore {
printLog(jclient, jobName, status.NextStart) printLog(jclient, jobName, history, status.NextStart)
} }
} else { } else {
log.Fatal(err) log.Fatal(err)
......
...@@ -134,14 +134,19 @@ func (q *JobClient) GetHistory(name string) (builds []JobBuild, err error) { ...@@ -134,14 +134,19 @@ func (q *JobClient) GetHistory(name string) (builds []JobBuild, err error) {
} }
// Log get the log of a job // Log get the log of a job
func (q *JobClient) Log(jobName string, start int64) (jobLog JobLog, err error) { func (q *JobClient) Log(jobName string, history int, start int64) (jobLog JobLog, err error) {
jobItems := strings.Split(jobName, " ") jobItems := strings.Split(jobName, " ")
path := "" path := ""
for _, item := range jobItems { for _, item := range jobItems {
path = fmt.Sprintf("%s/job/%s", path, item) path = fmt.Sprintf("%s/job/%s", path, item)
} }
api := fmt.Sprintf("%s/%s/lastBuild/logText/progressiveText?start=%d", q.URL, path, start) var api string
if history == -1 {
api = fmt.Sprintf("%s/%s/lastBuild/logText/progressiveText?start=%d", q.URL, path, start)
} else {
api = fmt.Sprintf("%s/%s/%d/logText/progressiveText?start=%d", q.URL, path, history, start)
}
var ( var (
req *http.Request req *http.Request
response *http.Response response *http.Response
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册