From 4d830789ecfe0409a164b81b2870f0e610a9ec73 Mon Sep 17 00:00:00 2001 From: Justin McCarthy Date: Fri, 1 Jun 2018 17:01:22 -0700 Subject: [PATCH] never pull the docker container if pandoc is present and working in the PATH --- internal/cli/app.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/internal/cli/app.go b/internal/cli/app.go index 54297eb..6f948c5 100644 --- a/internal/cli/app.go +++ b/internal/cli/app.go @@ -106,12 +106,18 @@ func pandocMustExist(c *cli.Context) error { pandocExistErr := pandocBinaryMustExist(c) dockerExistErr := dockerMustExist(c) + config.SetPandoc(pandocExistErr == nil, dockerExistErr == nil) if pandocExistErr != nil && dockerExistErr != nil { return eitherMustExistErr } + // if we don't have pandoc, but we do have docker, execute a pull + if pandocExistErr != nil && dockerExistErr == nil { + dockerPull(c) + } + return nil } @@ -170,6 +176,23 @@ func dockerMustExist(c *cli.Context) error { return dockerErr } + _, err = cli.Ping(ctx) + if err != nil { + return dockerErr + } + + return nil +} + +func dockerPull(c *cli.Context) error { + dockerErr := fmt.Errorf("Docker must be available in order to run `%s`", c.Command.Name) + + ctx := context.Background() + cli, err := client.NewEnvClient() + if err != nil { + return dockerErr + } + done := make(chan struct{}) defer close(done)