worker: fix controlcmd with spaces

This commit is contained in:
Roshless 2021-05-16 23:03:23 +02:00 committed by Drew DeVault
parent 10455b7a7e
commit ab4f91e57b
3 changed files with 16 additions and 3 deletions

View File

@ -15,6 +15,7 @@ import (
"time"
"github.com/go-redis/redis"
"github.com/google/shlex"
"github.com/pkg/errors"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
@ -252,8 +253,14 @@ func (ctx *JobContext) Standby(buildUser string) {
func (ctx *JobContext) Control(
context context.Context, args ...string) *exec.Cmd {
control := conf("builds.sr.ht::worker", "controlcmd")
return exec.CommandContext(context, control, args...)
controlString := conf("builds.sr.ht::worker", "controlcmd")
controlSplitted, err := shlex.Split(controlString)
if err != nil {
panic(errors.Wrap(err, "controlcmd"))
}
args = append(controlSplitted[1:], args...)
return exec.CommandContext(context, controlSplitted[0], args...)
}
func (ctx *JobContext) SSH(args ...string) *exec.Cmd {

View File

@ -4,8 +4,9 @@ require (
git.sr.ht/~sircmpwn/core-go v0.0.0-20210108160653-070566136c1a
github.com/go-gomail/gomail v0.0.0-20160411212932-81ebce5c23df
github.com/go-redis/redis v6.15.2+incompatible
github.com/gocelery/gocelery v0.0.0-20201111034804-825d89059344 // indirect
github.com/gocelery/gocelery v0.0.0-20201111034804-825d89059344
github.com/gomodule/redigo v2.0.0+incompatible // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510
github.com/jpillora/longestcommon v0.0.0-20161227235612-adb9d91ee629
github.com/kr/pty v1.1.3
github.com/lib/pq v1.8.0
@ -19,6 +20,7 @@ require (
github.com/streadway/amqp v1.0.0 // indirect
github.com/vaughan0/go-ini v0.0.0-20130923145212-a98ad7ee00ec
golang.org/x/sys v0.0.0-20201013132646-2da7054afaeb
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
gopkg.in/mail.v2 v2.3.1
gopkg.in/yaml.v2 v2.3.0
)

View File

@ -139,6 +139,8 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/
github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
@ -532,6 +534,8 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD
google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk=
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=