From 52d1bc6395825ae1aea2b2db298684dcd32c08ef Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Fri, 6 Oct 2017 14:14:50 +0100 Subject: [PATCH] More specific error message when docker not installed Signed-off-by: Ian Campbell --- src/cmd/linuxkit/pkglib/docker.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/cmd/linuxkit/pkglib/docker.go b/src/cmd/linuxkit/pkglib/docker.go index 0efe290d7..8581088cb 100644 --- a/src/cmd/linuxkit/pkglib/docker.go +++ b/src/cmd/linuxkit/pkglib/docker.go @@ -23,6 +23,14 @@ func newDockerRunner(dct, cache bool) dockerRunner { return dockerRunner{dct: dct, cache: cache} } +func isExecErrNotFound(err error) bool { + eerr, ok := err.(*exec.Error) + if !ok { + return false + } + return eerr.Err == exec.ErrNotFound +} + func (dr dockerRunner) command(args ...string) error { cmd := exec.Command("docker", args...) cmd.Stdout = os.Stdout @@ -38,7 +46,11 @@ func (dr dockerRunner) command(args ...string) error { } fmt.Fprintf(os.Stderr, "+ %s%v\n", dct, cmd.Args) } - return cmd.Run() + err := cmd.Run() + if isExecErrNotFound(err) { + return fmt.Errorf("linuxkit pkg requires docker to be installed") + } + return err } func (dr dockerRunner) pull(img string) (bool, error) {