From ef3e46fd62135592933c2a4bcc044274c03713ac Mon Sep 17 00:00:00 2001 From: Andy Caldwell Date: Fri, 20 Aug 2021 15:09:56 +0100 Subject: [PATCH] Move printing to stdout up to the command itself Signed-off-by: Andy Caldwell --- build/build.go | 7 ------- commands/build.go | 24 ++++++++++++++++-------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/build/build.go b/build/build.go index bce81610..e7eacd07 100644 --- a/build/build.go +++ b/build/build.go @@ -54,7 +54,6 @@ type Options struct { BuildArgs map[string]string Pull bool ImageIDFile string - Quiet bool ExtraHosts []string NetworkMode string @@ -685,9 +684,6 @@ func Build(ctx context.Context, drivers []DriverInfo, opt map[string]Options, do respMu.Unlock() if len(res) == 1 { digest := res[0].ExporterResponse["containerimage.digest"] - if opt.Quiet { - fmt.Println(digest) - } if opt.ImageIDFile != "" { return ioutil.WriteFile(opt.ImageIDFile, []byte(digest), 0644) } @@ -718,9 +714,6 @@ func Build(ctx context.Context, drivers []DriverInfo, opt map[string]Options, do if err != nil { return err } - if opt.Quiet { - fmt.Println(desc.Digest) - } if opt.ImageIDFile != "" { return ioutil.WriteFile(opt.ImageIDFile, []byte(desc.Digest), 0644) } diff --git a/commands/build.go b/commands/build.go index ab5ecba7..19befaac 100644 --- a/commands/build.go +++ b/commands/build.go @@ -3,6 +3,7 @@ package commands import ( "context" "encoding/json" + "fmt" "os" "path/filepath" "strings" @@ -122,7 +123,6 @@ func runBuild(dockerCli command.Cli, in buildOptions) (err error) { NoCache: noCache, Target: in.target, ImageIDFile: in.imageIDFile, - Quiet: in.quiet, ExtraHosts: in.extraHosts, NetworkMode: in.networkMode, } @@ -216,13 +216,21 @@ func runBuild(dockerCli command.Cli, in buildOptions) (err error) { contextPathHash = in.contextPath } - return buildTargets(ctx, dockerCli, map[string]build.Options{defaultTargetName: opts}, in.progress, contextPathHash, in.builder, in.metadataFile) + imageID, err := buildTargets(ctx, dockerCli, map[string]build.Options{defaultTargetName: opts}, in.progress, contextPathHash, in.builder, in.metadataFile) + if err != nil { + return err + } + + if in.quiet { + fmt.Println(imageID) + } + return nil } -func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]build.Options, progressMode, contextPathHash, instance string, metadataFile string) error { +func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]build.Options, progressMode, contextPathHash, instance string, metadataFile string) (imageID string, err error) { dis, err := getInstanceOrDefault(ctx, dockerCli, instance, contextPathHash) if err != nil { - return err + return "", err } ctx2, cancel := context.WithCancel(context.TODO()) @@ -236,20 +244,20 @@ func buildTargets(ctx context.Context, dockerCli command.Cli, opts map[string]bu err = err1 } if err != nil { - return err + return "", err } if len(metadataFile) > 0 && resp != nil { mdatab, err := json.MarshalIndent(resp[defaultTargetName].ExporterResponse, "", " ") if err != nil { - return err + return "", err } if err := ioutils.AtomicWriteFile(metadataFile, mdatab, 0644); err != nil { - return err + return "", err } } - return err + return resp[defaultTargetName].ExporterResponse["containerimage.digest"], err } func buildCmd(dockerCli command.Cli, rootOpts *rootOptions) *cobra.Command {