From a0719aee8826518ec0bb5e0db188f37c98b06625 Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Tue, 16 Apr 2019 12:01:10 -0700 Subject: [PATCH] commands: imagetools stubs Signed-off-by: Tonis Tiigi --- commands/imagetools/create.go | 41 ++++++++++++++++++++++++++++++++++ commands/imagetools/inspect.go | 37 ++++++++++++++++++++++++++++++ commands/imagetools/root.go | 20 +++++++++++++++++ commands/root.go | 2 ++ 4 files changed, 100 insertions(+) create mode 100644 commands/imagetools/create.go create mode 100644 commands/imagetools/inspect.go create mode 100644 commands/imagetools/root.go diff --git a/commands/imagetools/create.go b/commands/imagetools/create.go new file mode 100644 index 00000000..e028a6b1 --- /dev/null +++ b/commands/imagetools/create.go @@ -0,0 +1,41 @@ +package commands + +import ( + "github.com/docker/cli/cli/command" + "github.com/pkg/errors" + "github.com/spf13/cobra" +) + +type createOptions struct { + files []string + tags []string + dryrun bool + append bool +} + +func runCreate(dockerCli command.Cli, in createOptions, args []string) error { + return errors.Errorf("not-implemented") +} + +func createCmd(dockerCli command.Cli) *cobra.Command { + var options createOptions + + cmd := &cobra.Command{ + Use: "create [OPTIONS] [SOURCE...]", + Short: "Create a new image based on source images", + RunE: func(cmd *cobra.Command, args []string) error { + return runCreate(dockerCli, options, args) + }, + } + + flags := cmd.Flags() + + flags.StringArrayVarP(&options.files, "file", "f", []string{}, "Read source descriptor from file") + flags.StringArrayVarP(&options.tags, "tag", "t", []string{}, "Set reference for new image") + flags.BoolVar(&options.dryrun, "dry-run", false, "Show final image instead of pushing") + flags.BoolVar(&options.append, "append", false, "Append to existing manifest") + + _ = flags + + return cmd +} diff --git a/commands/imagetools/inspect.go b/commands/imagetools/inspect.go new file mode 100644 index 00000000..fe774438 --- /dev/null +++ b/commands/imagetools/inspect.go @@ -0,0 +1,37 @@ +package commands + +import ( + "github.com/docker/cli/cli" + "github.com/docker/cli/cli/command" + "github.com/pkg/errors" + "github.com/spf13/cobra" +) + +type inspectOptions struct { + raw bool +} + +func runInspect(dockerCli command.Cli, in inspectOptions, name string) error { + return errors.Errorf("not-implemented") +} + +func inspectCmd(dockerCli command.Cli) *cobra.Command { + var options inspectOptions + + cmd := &cobra.Command{ + Use: "inspect [OPTIONS] NAME", + Short: "Show details of image in the registry", + Args: cli.ExactArgs(1), + RunE: func(cmd *cobra.Command, args []string) error { + return runInspect(dockerCli, options, args[0]) + }, + } + + flags := cmd.Flags() + + flags.BoolVar(&options.raw, "raw", false, "Show original JSON manifest") + + _ = flags + + return cmd +} diff --git a/commands/imagetools/root.go b/commands/imagetools/root.go new file mode 100644 index 00000000..ad1aa563 --- /dev/null +++ b/commands/imagetools/root.go @@ -0,0 +1,20 @@ +package commands + +import ( + "github.com/docker/cli/cli/command" + "github.com/spf13/cobra" +) + +func RootCmd(dockerCli command.Cli) *cobra.Command { + cmd := &cobra.Command{ + Use: "imagetools", + Short: "Commands to work on images in registry", + } + + cmd.AddCommand( + inspectCmd(dockerCli), + createCmd(dockerCli), + ) + + return cmd +} diff --git a/commands/root.go b/commands/root.go index dd754c98..eb8ccd12 100644 --- a/commands/root.go +++ b/commands/root.go @@ -4,6 +4,7 @@ import ( "github.com/docker/cli/cli-plugins/plugin" "github.com/docker/cli/cli/command" "github.com/spf13/cobra" + imagetoolscmd "github.com/tonistiigi/buildx/commands/imagetools" ) func NewRootCmd(name string, isPlugin bool, dockerCli command.Cli) *cobra.Command { @@ -31,5 +32,6 @@ func addCommands(cmd *cobra.Command, dockerCli command.Cli) { useCmd(dockerCli), inspectCmd(dockerCli), stopCmd(dockerCli), + imagetoolscmd.RootCmd(dockerCli), ) }