package main import ( "fmt" "os" "text/tabwriter" "time" units "github.com/docker/go-units" "github.com/urfave/cli" ) var activeCommand = cli.Command{ Name: "active", Usage: "display active transfers.", ArgsUsage: "[flags] [, ...]", Description: `Display the ongoing transfers.`, Flags: []cli.Flag{ cli.DurationFlag{ Name: "timeout, t", Usage: "total timeout for fetch", EnvVar: "CONTAINERD_FETCH_TIMEOUT", }, cli.StringFlag{ Name: "root", Usage: "path to content store root", Value: "/tmp/content", // TODO(stevvooe): for now, just use the PWD/.content }, }, Action: func(context *cli.Context) error { cs, err := resolveContentStore(context) if err != nil { return err } active, err := cs.Active() if err != nil { return err } tw := tabwriter.NewWriter(os.Stdout, 1, 8, 1, '\t', 0) fmt.Fprintln(tw, "REF\tSIZE\tAGE") for _, active := range active { fmt.Fprintf(tw, "%s\t%s\t%s\n", active.Ref, units.HumanSize(float64(active.Offset)), units.HumanDuration(time.Since(active.StartedAt))) } tw.Flush() return nil }, }