github.com/pdmccormick/importable-docker-buildx@v0.0.0-20240426161518-e47091289030/commands/install.go (about) 1 package commands 2 3 import ( 4 "os" 5 6 "github.com/docker/buildx/util/cobrautil" 7 "github.com/docker/buildx/util/cobrautil/completion" 8 "github.com/docker/cli/cli" 9 "github.com/docker/cli/cli/command" 10 "github.com/docker/cli/cli/config" 11 "github.com/pkg/errors" 12 "github.com/spf13/cobra" 13 ) 14 15 type installOptions struct { 16 } 17 18 func runInstall(_ command.Cli, _ installOptions) error { 19 dir := config.Dir() 20 if err := os.MkdirAll(dir, 0755); err != nil { 21 return errors.Wrap(err, "could not create docker config") 22 } 23 24 cfg, err := config.Load(dir) 25 if err != nil { 26 return err 27 } 28 29 if cfg.Aliases == nil { 30 cfg.Aliases = map[string]string{} 31 } 32 cfg.Aliases["builder"] = "buildx" 33 34 if err := cfg.Save(); err != nil { 35 return errors.Wrap(err, "could not write docker config") 36 } 37 return nil 38 } 39 40 func installCmd(dockerCli command.Cli) *cobra.Command { 41 var options installOptions 42 43 cmd := &cobra.Command{ 44 Use: "install", 45 Short: "Install buildx as a 'docker builder' alias", 46 Args: cli.ExactArgs(0), 47 RunE: func(cmd *cobra.Command, args []string) error { 48 return runInstall(dockerCli, options) 49 }, 50 Hidden: true, 51 ValidArgsFunction: completion.Disable, 52 } 53 54 // hide builder persistent flag for this command 55 cobrautil.HideInheritedFlags(cmd, "builder") 56 57 return cmd 58 }