mirror of
https://github.com/containers/podman.git
synced 2025-06-22 01:48:54 +08:00
V2 Fix --latest for podman diff commands
* --latest now forces container diff * diff options now passed into domain layer * updated help/usage messages Signed-off-by: Jhon Honce <jhonce@redhat.com>
This commit is contained in:
@ -45,7 +45,11 @@ func diff(cmd *cobra.Command, args []string) error {
|
|||||||
return errors.New("container must be specified: podman container diff [options [...]] ID-NAME")
|
return errors.New("container must be specified: podman container diff [options [...]] ID-NAME")
|
||||||
}
|
}
|
||||||
|
|
||||||
results, err := registry.ContainerEngine().ContainerDiff(registry.GetContext(), args[0], entities.DiffOptions{})
|
var id string
|
||||||
|
if len(args) > 0 {
|
||||||
|
id = args[0]
|
||||||
|
}
|
||||||
|
results, err := registry.ContainerEngine().ContainerDiff(registry.GetContext(), id, *diffOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -46,10 +46,9 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func diff(cmd *cobra.Command, args []string) error {
|
func diff(cmd *cobra.Command, args []string) error {
|
||||||
if found, err := registry.ImageEngine().Exists(registry.GetContext(), args[0]); err != nil {
|
// Latest implies looking for a container
|
||||||
return err
|
if diffOpts.Latest {
|
||||||
} else if found.Value {
|
return containers.Diff(cmd, args, diffOpts)
|
||||||
return images.Diff(cmd, args, diffOpts)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if found, err := registry.ContainerEngine().ContainerExists(registry.GetContext(), args[0]); err != nil {
|
if found, err := registry.ContainerEngine().ContainerExists(registry.GetContext(), args[0]); err != nil {
|
||||||
@ -57,5 +56,12 @@ func diff(cmd *cobra.Command, args []string) error {
|
|||||||
} else if found.Value {
|
} else if found.Value {
|
||||||
return containers.Diff(cmd, args, diffOpts)
|
return containers.Diff(cmd, args, diffOpts)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if found, err := registry.ImageEngine().Exists(registry.GetContext(), args[0]); err != nil {
|
||||||
|
return err
|
||||||
|
} else if found.Value {
|
||||||
|
return images.Diff(cmd, args, diffOpts)
|
||||||
|
}
|
||||||
|
|
||||||
return fmt.Errorf("%s not found on system", args[0])
|
return fmt.Errorf("%s not found on system", args[0])
|
||||||
}
|
}
|
||||||
|
@ -11,8 +11,8 @@ import (
|
|||||||
var (
|
var (
|
||||||
// podman container _inspect_
|
// podman container _inspect_
|
||||||
diffCmd = &cobra.Command{
|
diffCmd = &cobra.Command{
|
||||||
Use: "diff [flags] CONTAINER",
|
Use: "diff [flags] IMAGE",
|
||||||
Args: registry.IdOrLatestArgs,
|
Args: cobra.ExactArgs(1),
|
||||||
Short: "Inspect changes on image's file systems",
|
Short: "Inspect changes on image's file systems",
|
||||||
Long: `Displays changes on a image's filesystem. The image will be compared to its parent layer.`,
|
Long: `Displays changes on a image's filesystem. The image will be compared to its parent layer.`,
|
||||||
RunE: diff,
|
RunE: diff,
|
||||||
@ -32,16 +32,16 @@ func init() {
|
|||||||
diffOpts = &entities.DiffOptions{}
|
diffOpts = &entities.DiffOptions{}
|
||||||
flags := diffCmd.Flags()
|
flags := diffCmd.Flags()
|
||||||
flags.BoolVar(&diffOpts.Archive, "archive", true, "Save the diff as a tar archive")
|
flags.BoolVar(&diffOpts.Archive, "archive", true, "Save the diff as a tar archive")
|
||||||
_ = flags.MarkHidden("archive")
|
_ = flags.MarkDeprecated("archive", "Provided for backwards compatibility, has no impact on output.")
|
||||||
flags.StringVar(&diffOpts.Format, "format", "", "Change the output format")
|
flags.StringVar(&diffOpts.Format, "format", "", "Change the output format")
|
||||||
}
|
}
|
||||||
|
|
||||||
func diff(cmd *cobra.Command, args []string) error {
|
func diff(cmd *cobra.Command, args []string) error {
|
||||||
if len(args) == 0 && !diffOpts.Latest {
|
if diffOpts.Latest {
|
||||||
return errors.New("image must be specified: podman image diff [options [...]] ID-NAME")
|
return errors.New("image diff does not support --latest")
|
||||||
}
|
}
|
||||||
|
|
||||||
results, err := registry.ImageEngine().Diff(registry.GetContext(), args[0], entities.DiffOptions{})
|
results, err := registry.ImageEngine().Diff(registry.GetContext(), args[0], *diffOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user