summaryrefslogtreecommitdiff
path: root/cmd/podman/images
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-07-03 06:17:03 -0400
committerGitHub <noreply@github.com>2021-07-03 06:17:03 -0400
commit895b8151889422aac1f9b72eebe6d62e8e15095c (patch)
tree3694e61ecedcb8c8fb1b59dd12e1e882d7ce6ae0 /cmd/podman/images
parent07716133c44c9c9593364029f4b98085d1be3bdd (diff)
parent8f6a0243f4b7f861a116c0dba5967b3cfe23d61f (diff)
downloadpodman-895b8151889422aac1f9b72eebe6d62e8e15095c.tar.gz
podman-895b8151889422aac1f9b72eebe6d62e8e15095c.tar.bz2
podman-895b8151889422aac1f9b72eebe6d62e8e15095c.zip
Merge pull request #10836 from Luap99/diff
podman diff accept two images or containers
Diffstat (limited to 'cmd/podman/images')
-rw-r--r--cmd/podman/images/diff.go40
1 files changed, 10 insertions, 30 deletions
diff --git a/cmd/podman/images/diff.go b/cmd/podman/images/diff.go
index 2e883d7ae..825aab362 100644
--- a/cmd/podman/images/diff.go
+++ b/cmd/podman/images/diff.go
@@ -1,11 +1,11 @@
package images
import (
- "github.com/containers/common/pkg/report"
"github.com/containers/podman/v3/cmd/podman/common"
+ "github.com/containers/podman/v3/cmd/podman/diff"
"github.com/containers/podman/v3/cmd/podman/registry"
+ "github.com/containers/podman/v3/libpod/define"
"github.com/containers/podman/v3/pkg/domain/entities"
- "github.com/pkg/errors"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
)
@@ -13,11 +13,11 @@ import (
var (
// podman container _inspect_
diffCmd = &cobra.Command{
- Use: "diff [options] IMAGE",
- Args: cobra.ExactArgs(1),
+ Use: "diff [options] IMAGE [IMAGE]",
+ Args: cobra.RangeArgs(1, 2),
Short: "Inspect changes to the image's file systems",
- Long: `Displays changes to the image's filesystem. The image will be compared to its parent layer.`,
- RunE: diff,
+ Long: `Displays changes to the image's filesystem. The image will be compared to its parent layer or the second argument when given.`,
+ RunE: diffRun,
ValidArgsFunction: common.AutocompleteImages,
Example: `podman image diff myImage
podman image diff --format json redis:alpine`,
@@ -39,31 +39,11 @@ func diffFlags(flags *pflag.FlagSet) {
_ = flags.MarkDeprecated("archive", "Provided for backwards compatibility, has no impact on output.")
formatFlagName := "format"
- flags.StringVar(&diffOpts.Format, formatFlagName, "", "Change the output format")
+ flags.StringVar(&diffOpts.Format, formatFlagName, "", "Change the output format (json)")
_ = diffCmd.RegisterFlagCompletionFunc(formatFlagName, common.AutocompleteFormat(nil))
}
-func diff(cmd *cobra.Command, args []string) error {
- if diffOpts.Latest {
- return errors.New("image diff does not support --latest")
- }
-
- results, err := registry.ImageEngine().Diff(registry.GetContext(), args[0], *diffOpts)
- if err != nil {
- return err
- }
-
- switch {
- case report.IsJSON(diffOpts.Format):
- return common.ChangesToJSON(results)
- case diffOpts.Format == "":
- return common.ChangesToTable(results)
- default:
- return errors.New("only supported value for '--format' is 'json'")
- }
-}
-
-func Diff(cmd *cobra.Command, args []string, options entities.DiffOptions) error {
- diffOpts = &options
- return diff(cmd, args)
+func diffRun(cmd *cobra.Command, args []string) error {
+ diffOpts.Type = define.DiffImage
+ return diff.Diff(cmd, args, *diffOpts)
}