Skip to content

Commit d8c0836

Browse files
committed
Add Jobinfo command
1 parent 7a1b5d4 commit d8c0836

File tree

5 files changed

+79
-9
lines changed

5 files changed

+79
-9
lines changed

Command.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ func runCommand(parsed string, commandData *commands.CommandData) {
5050
case ccacheInfoCmd.FullCommand():
5151
commandData.QueryCcache()
5252

53+
case jobInfo.FullCommand():
54+
commandData.JobInfo(*jobInfoID)
55+
5356
}
5457

5558
}

commands/Jobs.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"encoding/base64"
55
"fmt"
66
"io"
7+
"io/ioutil"
78
"os"
89
"strconv"
910
"strings"
@@ -87,6 +88,69 @@ func (cData *CommandData) ListJobs(limit int) {
8788
fmt.Println(table)
8889
}
8990

91+
// JobInfo infos about a single job
92+
func (cData *CommandData) JobInfo(jobID uint) {
93+
infoChan := make(chan librb.JobInfo, 1)
94+
logChan := make(chan string, 1)
95+
exitChan := make(chan struct{}, 1)
96+
97+
go func() {
98+
info, err := cData.Librb.JobInfo(jobID)
99+
if err != nil {
100+
printResponseError(err, "retrieving infos")
101+
exitChan <- struct{}{}
102+
}
103+
infoChan <- *info
104+
}()
105+
106+
go func() {
107+
logs, err := cData.Librb.Logs(jobID, time.Unix(time.Now().Unix()-30, 0))
108+
if err != nil {
109+
logChan <- ""
110+
return
111+
}
112+
113+
out, err := ioutil.ReadAll(logs.Response.Body)
114+
if err != nil {
115+
logChan <- ""
116+
return
117+
}
118+
119+
logChan <- strings.TrimSpace(string(out))
120+
}()
121+
122+
var info librb.JobInfo
123+
var logtext string
124+
select {
125+
case info = <-infoChan:
126+
logtext = <-logChan
127+
case <-exitChan:
128+
return
129+
}
130+
131+
ItemColor := color.New(color.FgHiGreen, color.Bold).SprintFunc()
132+
133+
// Create table
134+
table := clitable.New()
135+
table.ColSeparator = " "
136+
table.Padding = 2
137+
138+
table.AddRow(ItemColor("ID:"), info.ID)
139+
table.AddRow(ItemColor("Info"), info.Info)
140+
table.AddRow(ItemColor("Type"), info.BuildType)
141+
table.AddRow(ItemColor("Upload"), info.UploadType)
142+
table.AddRow(ItemColor("Status"), info.Status.String())
143+
table.AddRow(ItemColor("Duration"), info.Duration)
144+
145+
fmt.Print(table.String())
146+
if len(logtext) > 0 {
147+
fmt.Println(ItemColor("Logs:"))
148+
fmt.Println()
149+
fmt.Print(logtext)
150+
}
151+
fmt.Println()
152+
}
153+
90154
// CancelJob cancel a job
91155
func (cData *CommandData) CancelJob(jobID uint) {
92156
if err := cData.Librb.CancelJob(jobID); err != nil {

go.mod

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.14
55
require (
66
github.com/DataManager-Go/libdatamanager v1.3.8 // indirect
77
github.com/DataManager-Go/libdatamanager/config v0.0.0-20200717181208-26ce39a85e00
8-
github.com/JojiiOfficial/LibRemotebuild v0.1.8
8+
github.com/JojiiOfficial/LibRemotebuild v0.1.9
99
github.com/JojiiOfficial/LibRemotebuild/config v0.0.0-20200720164658-323c1e7631fd
1010
github.com/JojiiOfficial/configService v0.0.0-20200219132202-6e71512e2e28
1111
github.com/JojiiOfficial/gaw v1.2.8
@@ -18,8 +18,8 @@ require (
1818
github.com/mattn/go-runewidth v0.0.9 // indirect
1919
github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
2020
github.com/zalando/go-keyring v0.1.0
21-
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de
22-
golang.org/x/sys v0.0.0-20200819171115-d785dc25833f // indirect
21+
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a
22+
golang.org/x/sys v0.0.0-20200828194041-157a740278f4 // indirect
2323
gopkg.in/alecthomas/kingpin.v2 v2.2.6
2424
gopkg.in/benweidig/cli-table.v2 v2.0.0-20180519085552-8b9fa48fb374
2525
)

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ github.com/DataManager-Go/libdatamanager/config v0.0.0-20200717181208-26ce39a85e
77
github.com/DataManager-Go/libdatamanager/config v0.0.0-20200717181208-26ce39a85e00/go.mod h1:YHPA+ryhCc4xY130Az+ScF9zkRNGdHuz09eZXiULhrw=
88
github.com/JojiiOfficial/LibRemotebuild v0.0.3 h1:MdXvqIlVcdXCcBf/XDbPxvhCF+Wwurijr4J7kNeNjI0=
99
github.com/JojiiOfficial/LibRemotebuild v0.0.3/go.mod h1:NS5D8NlALafEHK8LmRctE22sM4JjOlZyCwoXA//P2nU=
10-
github.com/JojiiOfficial/LibRemotebuild v0.1.8 h1:jeZkbsnlje+8AWw6U/zjJsjkDkYM17rvcKrDaW2lRPY=
11-
github.com/JojiiOfficial/LibRemotebuild v0.1.8/go.mod h1:NS5D8NlALafEHK8LmRctE22sM4JjOlZyCwoXA//P2nU=
10+
github.com/JojiiOfficial/LibRemotebuild v0.1.9 h1:+hOpqEYMP3e5flugK0CkTBq6d2nSxGguHWOFbohD5PI=
11+
github.com/JojiiOfficial/LibRemotebuild v0.1.9/go.mod h1:NS5D8NlALafEHK8LmRctE22sM4JjOlZyCwoXA//P2nU=
1212
github.com/JojiiOfficial/LibRemotebuild/config v0.0.0-20200720164658-323c1e7631fd h1:SO0qWFPwNsd8n9iHcG0tImu9HStMTE30BsexTlnH3Z0=
1313
github.com/JojiiOfficial/LibRemotebuild/config v0.0.0-20200720164658-323c1e7631fd/go.mod h1:lxGR/6KclpgZK45zYp8Fez3LbhrWIOI3ZYM0jFAkYFo=
1414
github.com/JojiiOfficial/configService v0.0.0-20200219132202-6e71512e2e28 h1:nYoIExG+Z/gSLS9Jbpu6lnrh+m6e9gTxQfGhanTsExE=
@@ -90,8 +90,8 @@ github.com/zalando/go-keyring v0.1.0/go.mod h1:RaxNwUITJaHVdQ0VC7pELPZ3tOWn13nr0
9090
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
9191
golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
9292
golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
93-
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig=
94-
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
93+
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM=
94+
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
9595
golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
9696
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
9797
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -106,8 +106,8 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w
106106
golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
107107
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORKTAbhZo2AbWNRCnevdo=
108108
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
109-
golang.org/x/sys v0.0.0-20200819171115-d785dc25833f h1:KJuwZVtZBVzDmEDtB2zro9CXkD9O0dpCv4o2LHbQIAw=
110-
golang.org/x/sys v0.0.0-20200819171115-d785dc25833f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
109+
golang.org/x/sys v0.0.0-20200828194041-157a740278f4 h1:kCCpuwSAoYJPkNc6x0xT9yTtV4oKtARo4RGBQWOfg9E=
110+
golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
111111
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
112112
gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc=
113113
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=

main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ var (
6565
// Job commands
6666
job = app.Command("job", "Job actions").Alias("j")
6767

68+
jobInfo = job.Command("info", "Infos about a job").Alias("i")
69+
jobInfoID = jobInfo.Arg("id", "JobID").Required().Uint()
70+
6871
// New jobs
6972
newJobCmd = job.Command("create", "Create a new job").Alias("c")
7073

0 commit comments

Comments
 (0)