From a9b8be1d7dc9739064cbf1f87ec5879ad3ec0961 Mon Sep 17 00:00:00 2001 From: Alano Terblanche <18033717+Benehiko@users.noreply.github.com> Date: Fri, 7 Jun 2024 16:40:55 +0200 Subject: [PATCH] refactor: main into dockerMain Signed-off-by: Alano Terblanche <18033717+Benehiko@users.noreply.github.com> --- cmd/docker/docker.go | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index ad0723edc41e..f5dad2ec79fc 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -28,14 +28,20 @@ import ( ) func main() { + statusCode := dockerMain() + if statusCode != 0 { + os.Exit(statusCode) + } +} + +func dockerMain() int { ctx, cancelNotify := signal.NotifyContext(context.Background(), platformsignals.TerminationSignals...) defer cancelNotify() dockerCli, err := command.NewDockerCli(command.WithBaseContext(ctx)) if err != nil { fmt.Fprintln(os.Stderr, err) - defer os.Exit(1) - return + return 1 } logrus.SetOutput(dockerCli.Err()) otel.SetErrorHandler(debug.OTELErrorHandler) @@ -48,20 +54,17 @@ func main() { // StatusError should only be used for errors, and all errors should // have a non-zero exit status, so never exit with 0 if sterr.StatusCode == 0 { - defer os.Exit(1) - return + return 1 } - defer os.Exit(sterr.StatusCode) - return + return sterr.StatusCode } if errdefs.IsCancelled(err) { - defer os.Exit(0) - return + return 0 } fmt.Fprintln(dockerCli.Err(), err) - defer os.Exit(1) - return + return 1 } + return 0 } func newDockerCommand(dockerCli *command.DockerCli) *cli.TopLevelCommand {