From 082dfb7360c095327d8c34850e5ffa8b7b931a58 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 19 Mar 2025 13:07:16 +0100 Subject: [PATCH] cmd/dockerd: use stdlib errors This package is not imported externally, and we don't need the added functionality of pkg/errors here, so use stdlib errors. Signed-off-by: Sebastiaan van Stijn --- cmd/docker/aliases.go | 6 +++--- cmd/docker/builder.go | 4 ++-- cmd/docker/docker.go | 17 +++++++---------- cmd/docker/docker_test.go | 2 +- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/cmd/docker/aliases.go b/cmd/docker/aliases.go index 5607adbd9427..ea17579c1e74 100644 --- a/cmd/docker/aliases.go +++ b/cmd/docker/aliases.go @@ -1,12 +1,12 @@ package main import ( + "fmt" "os" "strings" pluginmanager "github.com/docker/cli/cli-plugins/manager" "github.com/docker/cli/cli/command" - "github.com/pkg/errors" "github.com/spf13/cobra" ) @@ -26,11 +26,11 @@ func processAliases(dockerCli command.Cli, cmd *cobra.Command, args, osArgs []st for k, v := range aliasMap { if _, ok := allowedAliases[k]; !ok { - return args, osArgs, envs, errors.Errorf("not allowed to alias %q (allowed: %#v)", k, allowedAliases) + return args, osArgs, envs, fmt.Errorf("not allowed to alias %q (allowed: %#v)", k, allowedAliases) } if c, _, err := cmd.Find(strings.Split(v, " ")); err == nil { if !pluginmanager.IsPluginCommand(c) { - return args, osArgs, envs, errors.Errorf("not allowed to alias with builtin %q as target", v) + return args, osArgs, envs, fmt.Errorf("not allowed to alias with builtin %q as target", v) } } aliases = append(aliases, [2][]string{{k}, {v}}) diff --git a/cmd/docker/builder.go b/cmd/docker/builder.go index b1f592f7cfac..1ca735ffb60d 100644 --- a/cmd/docker/builder.go +++ b/cmd/docker/builder.go @@ -1,6 +1,7 @@ package main import ( + "errors" "fmt" "io" "os" @@ -11,7 +12,6 @@ import ( "github.com/docker/cli/cli-plugins/metadata" "github.com/docker/cli/cli/command" "github.com/docker/docker/api/types" - "github.com/pkg/errors" "github.com/spf13/cobra" "github.com/spf13/pflag" ) @@ -51,7 +51,7 @@ func processBuilder(dockerCli command.Cli, cmd *cobra.Command, args, osargs []st if v := os.Getenv("DOCKER_BUILDKIT"); v != "" { enabled, err := strconv.ParseBool(v) if err != nil { - return args, osargs, nil, errors.Wrap(err, "DOCKER_BUILDKIT environment variable expects boolean value") + return args, osargs, nil, fmt.Errorf("DOCKER_BUILDKIT environment variable expects boolean value: %w", err) } if !enabled { buildKitDisabled = true diff --git a/cmd/docker/docker.go b/cmd/docker/docker.go index 05d1a594819a..e93b5d2dcb38 100644 --- a/cmd/docker/docker.go +++ b/cmd/docker/docker.go @@ -2,6 +2,7 @@ package main import ( "context" + "errors" "fmt" "io" "os" @@ -21,7 +22,6 @@ import ( platformsignals "github.com/docker/cli/cmd/docker/internal/signals" "github.com/docker/docker/api/types/versions" "github.com/docker/docker/errdefs" - "github.com/pkg/errors" "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -203,7 +203,7 @@ func setupHelpCommand(dockerCli command.Cli, rootCmd, helpCmd *cobra.Command) { return helpcmd.Run() } if !pluginmanager.IsNotFound(err) { - return errors.Errorf("unknown help topic: %v", strings.Join(args, " ")) + return fmt.Errorf("unknown help topic: %v", strings.Join(args, " ")) } } if origRunE != nil { @@ -593,7 +593,7 @@ func isSupported(cmd *cobra.Command, details versionDetails) error { } func areFlagsSupported(cmd *cobra.Command, details versionDetails) error { - errs := []string{} + var errs []error cmd.Flags().VisitAll(func(f *pflag.Flag) { if !f.Changed || len(f.Annotations) == 0 { @@ -608,11 +608,11 @@ func areFlagsSupported(cmd *cobra.Command, details versionDetails) error { // See commit b39739123b845f872549e91be184cc583f5b387c for details. if _, ok := f.Annotations["version"]; ok && !isVersionSupported(f, details.CurrentVersion()) { - errs = append(errs, fmt.Sprintf(`"--%s" requires API version %s, but the Docker daemon API version is %s`, f.Name, getFlagAnnotation(f, "version"), details.CurrentVersion())) + errs = append(errs, fmt.Errorf(`"--%s" requires API version %s, but the Docker daemon API version is %s`, f.Name, getFlagAnnotation(f, "version"), details.CurrentVersion())) return } if _, ok := f.Annotations["ostype"]; ok && !isOSTypeSupported(f, details.ServerInfo().OSType) { - errs = append(errs, fmt.Sprintf( + errs = append(errs, fmt.Errorf( `"--%s" is only supported on a Docker daemon running on %s, but the Docker daemon is running on %s`, f.Name, getFlagAnnotation(f, "ostype"), details.ServerInfo().OSType), @@ -620,14 +620,11 @@ func areFlagsSupported(cmd *cobra.Command, details versionDetails) error { return } if _, ok := f.Annotations["experimental"]; ok && !details.ServerInfo().HasExperimental { - errs = append(errs, fmt.Sprintf(`"--%s" is only supported on a Docker daemon with experimental features enabled`, f.Name)) + errs = append(errs, fmt.Errorf(`"--%s" is only supported on a Docker daemon with experimental features enabled`, f.Name)) } // buildkit-specific flags are noop when buildkit is not enabled, so we do not add an error in that case }) - if len(errs) > 0 { - return errors.New(strings.Join(errs, "\n")) - } - return nil + return errors.Join(errs...) } // Check recursively so that, e.g., `docker stack ls` returns the same output as `docker stack` diff --git a/cmd/docker/docker_test.go b/cmd/docker/docker_test.go index cd3625b67029..62305d587709 100644 --- a/cmd/docker/docker_test.go +++ b/cmd/docker/docker_test.go @@ -3,6 +3,7 @@ package main import ( "bytes" "context" + "errors" "io" "os" "syscall" @@ -12,7 +13,6 @@ import ( "github.com/docker/cli/cli/command" "github.com/docker/cli/cli/debug" platformsignals "github.com/docker/cli/cmd/docker/internal/signals" - "github.com/pkg/errors" "github.com/sirupsen/logrus" "gotest.tools/v3/assert" is "gotest.tools/v3/assert/cmp"