summaryrefslogtreecommitdiff
path: root/cmd/podman/umount.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-02-08 20:12:38 +0100
committerGitHub <noreply@github.com>2019-02-08 20:12:38 +0100
commitafd4d5f4a4b05f421e6f336b4d74a0d808be57ed (patch)
tree2ccb4a0bd9bda70c1c258dcb1b8aca8961d9ad30 /cmd/podman/umount.go
parent962850c6e0dfcee926af31fc0ad24f1f6c26f8ac (diff)
parent25a3923b61a5ca014318e6d957f68abd03947297 (diff)
downloadpodman-afd4d5f4a4b05f421e6f336b4d74a0d808be57ed.tar.gz
podman-afd4d5f4a4b05f421e6f336b4d74a0d808be57ed.tar.bz2
podman-afd4d5f4a4b05f421e6f336b4d74a0d808be57ed.zip
Merge pull request #2274 from baude/cobraprep
Migrate to cobra CLI
Diffstat (limited to 'cmd/podman/umount.go')
-rw-r--r--cmd/podman/umount.go60
1 files changed, 31 insertions, 29 deletions
diff --git a/cmd/podman/umount.go b/cmd/podman/umount.go
index ab6925e65..4622e8276 100644
--- a/cmd/podman/umount.go
+++ b/cmd/podman/umount.go
@@ -3,60 +3,62 @@ package main
import (
"fmt"
+ "github.com/containers/libpod/cmd/podman/cliconfig"
"github.com/containers/libpod/cmd/podman/libpodruntime"
"github.com/containers/libpod/libpod"
"github.com/containers/storage"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
- "github.com/urfave/cli"
+ "github.com/spf13/cobra"
)
var (
- umountFlags = []cli.Flag{
- cli.BoolFlag{
- Name: "all, a",
- Usage: "Umount all of the currently mounted containers",
- },
- cli.BoolFlag{
- Name: "force, f",
- Usage: "Force the complete umount all of the currently mounted containers",
- },
- LatestFlag,
- }
-
- description = `
+ umountCommand cliconfig.UmountValues
+ description = `
Container storage increments a mount counter each time a container is mounted.
When a container is unmounted, the mount counter is decremented and the
container's root filesystem is physically unmounted only when the mount
counter reaches zero indicating no other processes are using the mount.
An unmount can be forced with the --force flag.
`
- umountCommand = cli.Command{
- Name: "umount",
- Aliases: []string{"unmount"},
- Usage: "Unmount working container's root filesystem",
- Description: description,
- Flags: sortFlags(umountFlags),
- Action: umountCmd,
- ArgsUsage: "CONTAINER-NAME-OR-ID",
- OnUsageError: usageErrorHandler,
+ _umountCommand = &cobra.Command{
+ Use: "umount",
+ Aliases: []string{"unmount"},
+ Short: "Unmounts working container's root filesystem",
+ Long: description,
+ RunE: func(cmd *cobra.Command, args []string) error {
+ umountCommand.InputArgs = args
+ umountCommand.GlobalFlags = MainGlobalOpts
+ return umountCmd(&umountCommand)
+ },
+ Example: "CONTAINER-NAME-OR-ID",
}
)
-func umountCmd(c *cli.Context) error {
- runtime, err := libpodruntime.GetRuntime(c)
+func init() {
+ umountCommand.Command = _umountCommand
+ flags := umountCommand.Flags()
+ flags.BoolVarP(&umountCommand.All, "all", "a", false, "Umount all of the currently mounted containers")
+ flags.BoolVarP(&umountCommand.Force, "force", "f", false, "Force the complete umount all of the currently mounted containers")
+ flags.BoolVarP(&umountCommand.Latest, "latest", "l", false, "Act on the latest container podman is aware of")
+
+ rootCmd.AddCommand(umountCommand.Command)
+}
+
+func umountCmd(c *cliconfig.UmountValues) error {
+ runtime, err := libpodruntime.GetRuntime(&c.PodmanCommand)
if err != nil {
return errors.Wrapf(err, "could not get runtime")
}
defer runtime.Shutdown(false)
- force := c.Bool("force")
- umountAll := c.Bool("all")
- if err := checkAllAndLatest(c); err != nil {
+ force := c.Force
+ umountAll := c.All
+ if err := checkAllAndLatest(&c.PodmanCommand); err != nil {
return err
}
- containers, err := getAllOrLatestContainers(c, runtime, -1, "all")
+ containers, err := getAllOrLatestContainers(&c.PodmanCommand, runtime, -1, "all")
if err != nil {
if len(containers) == 0 {
return err