adds quiet option for ref

Signed-off-by: Mike Brown <brownwm@us.ibm.com>
This commit is contained in:
Mike Brown 2021-04-20 09:20:14 -05:00
parent 00f8d32ef5
commit 391b123a5e

View File

@ -202,10 +202,16 @@ var checkCommand = cli.Command{
Usage: "check existing images to ensure all content is available locally",
ArgsUsage: "[flags] [<filter>, ...]",
Description: "check existing images to ensure all content is available locally",
Flags: commands.SnapshotterFlags,
Flags: append([]cli.Flag{
cli.BoolFlag{
Name: "quiet, q",
Usage: "print only the ready image refs (fully downloaded and unpacked)",
},
}, commands.SnapshotterFlags...),
Action: func(context *cli.Context) error {
var (
exitErr error
quiet = context.Bool("quiet")
)
client, ctx, cancel, err := commands.NewClient(context)
if err != nil {
@ -226,7 +232,9 @@ var checkCommand = cli.Command{
}
var tw = tabwriter.NewWriter(os.Stdout, 1, 8, 1, ' ', 0)
if !quiet {
fmt.Fprintln(tw, "REF\tTYPE\tDIGEST\tSTATUS\tSIZE\tUNPACKED\t")
}
for _, image := range imageList {
var (
@ -234,6 +242,7 @@ var checkCommand = cli.Command{
size string
requiredSize int64
presentSize int64
complete bool = true
)
available, required, present, missing, err := images.Check(ctx, contentStore, image.Target(), platforms.Default())
@ -243,6 +252,7 @@ var checkCommand = cli.Command{
}
log.G(ctx).WithError(err).Errorf("unable to check %v", image.Name())
status = "error"
complete = false
}
if status != "error" {
@ -256,6 +266,7 @@ var checkCommand = cli.Command{
if len(missing) > 0 {
status = "incomplete"
complete = false
}
if available {
@ -264,6 +275,7 @@ var checkCommand = cli.Command{
} else {
status = fmt.Sprintf("unavailable (%v/?)", len(present))
size = fmt.Sprintf("%v/?", progress.Bytes(presentSize))
complete = false
}
} else {
size = "-"
@ -277,6 +289,7 @@ var checkCommand = cli.Command{
log.G(ctx).WithError(err).Errorf("unable to check unpack for %v", image.Name())
}
if !quiet {
fmt.Fprintf(tw, "%v\t%v\t%v\t%v\t%v\t%t\n",
image.Name(),
image.Target().MediaType,
@ -284,9 +297,15 @@ var checkCommand = cli.Command{
status,
size,
unpacked)
} else {
if complete {
fmt.Println(image.Name())
}
}
}
if !quiet {
tw.Flush()
}
return exitErr
},
}