1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Engine: Engine.Job() never fails, to mimic the os/exec API (and make usage less verbose)

This commit is contained in:
Solomon Hykes 2013-10-26 17:49:16 -07:00
parent e8491ae54c
commit a13241d370
3 changed files with 8 additions and 16 deletions

View file

@ -71,10 +71,7 @@ func main() {
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
job, err := eng.Job("serveapi") job := eng.Job("serveapi")
if err != nil {
log.Fatal(err)
}
job.Setenv("Pidfile", *pidfile) job.Setenv("Pidfile", *pidfile)
job.Setenv("Root", *flRoot) job.Setenv("Root", *flRoot)
job.SetenvBool("AutoRestart", *flAutoRestart) job.SetenvBool("AutoRestart", *flAutoRestart)

View file

@ -64,11 +64,7 @@ func New(root string) (*Engine, error) {
// Job creates a new job which can later be executed. // Job creates a new job which can later be executed.
// This function mimics `Command` from the standard os/exec package. // This function mimics `Command` from the standard os/exec package.
func (eng *Engine) Job(name string, args ...string) (*Job, error) { func (eng *Engine) Job(name string, args ...string) *Job {
handler, exists := eng.handlers[name]
if !exists || handler == nil {
return nil, fmt.Errorf("Undefined command; %s", name)
}
job := &Job{ job := &Job{
eng: eng, eng: eng,
Name: name, Name: name,
@ -76,8 +72,11 @@ func (eng *Engine) Job(name string, args ...string) (*Job, error) {
Stdin: os.Stdin, Stdin: os.Stdin,
Stdout: os.Stdout, Stdout: os.Stdout,
Stderr: os.Stderr, Stderr: os.Stderr,
handler: handler,
} }
return job, nil handler, exists := eng.handlers[name]
if exists {
job.handler = handler
}
return job
} }

View file

@ -38,9 +38,5 @@ func mkEngine(t *testing.T) *Engine {
} }
func mkJob(t *testing.T, name string, args ...string) *Job { func mkJob(t *testing.T, name string, args ...string) *Job {
job, err := mkEngine(t).Job(name, args...) return mkEngine(t).Job(name, args...)
if err != nil {
t.Fatal(err)
}
return job
} }