summaryrefslogtreecommitdiff
path: root/cmd/podman/volume_prune.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/podman/volume_prune.go')
-rw-r--r--cmd/podman/volume_prune.go86
1 files changed, 0 insertions, 86 deletions
diff --git a/cmd/podman/volume_prune.go b/cmd/podman/volume_prune.go
deleted file mode 100644
index 48ed68509..000000000
--- a/cmd/podman/volume_prune.go
+++ /dev/null
@@ -1,86 +0,0 @@
-package main
-
-import (
- "bufio"
- "context"
- "fmt"
- "os"
- "strings"
-
- "github.com/containers/libpod/cmd/podman/cliconfig"
- "github.com/containers/libpod/pkg/adapter"
- "github.com/pkg/errors"
- "github.com/sirupsen/logrus"
- "github.com/spf13/cobra"
-)
-
-var (
- volumePruneCommand cliconfig.VolumePruneValues
- volumePruneDescription = `Volumes that are not currently owned by a container will be removed.
-
- The command prompts for confirmation which can be overridden with the --force flag.
- Note all data will be destroyed.`
- _volumePruneCommand = &cobra.Command{
- Use: "prune",
- Args: noSubArgs,
- Short: "Remove all unused volumes",
- Long: volumePruneDescription,
- RunE: func(cmd *cobra.Command, args []string) error {
- volumePruneCommand.InputArgs = args
- volumePruneCommand.GlobalFlags = MainGlobalOpts
- volumePruneCommand.Remote = remoteclient
- return volumePruneCmd(&volumePruneCommand)
- },
- }
-)
-
-func init() {
- volumePruneCommand.Command = _volumePruneCommand
- volumePruneCommand.SetHelpTemplate(HelpTemplate())
- volumePruneCommand.SetUsageTemplate(UsageTemplate())
- flags := volumePruneCommand.Flags()
-
- flags.BoolVarP(&volumePruneCommand.Force, "force", "f", false, "Do not prompt for confirmation")
-}
-
-func volumePrune(runtime *adapter.LocalRuntime, ctx context.Context) error {
- prunedNames, prunedErrors := runtime.PruneVolumes(ctx)
- for _, name := range prunedNames {
- fmt.Println(name)
- }
- if len(prunedErrors) == 0 {
- return nil
- }
- // Grab the last error
- lastError := prunedErrors[len(prunedErrors)-1]
- // Remove the last error from the error slice
- prunedErrors = prunedErrors[:len(prunedErrors)-1]
-
- for _, err := range prunedErrors {
- logrus.Errorf("%q", err)
- }
- return lastError
-}
-
-func volumePruneCmd(c *cliconfig.VolumePruneValues) error {
- runtime, err := adapter.GetRuntime(getContext(), &c.PodmanCommand)
- if err != nil {
- return errors.Wrapf(err, "error creating libpod runtime")
- }
- defer runtime.DeferredShutdown(false)
-
- // Prompt for confirmation if --force is not set
- if !c.Force {
- reader := bufio.NewReader(os.Stdin)
- fmt.Println("WARNING! This will remove all volumes not used by at least one container.")
- fmt.Print("Are you sure you want to continue? [y/N] ")
- answer, err := reader.ReadString('\n')
- if err != nil {
- return errors.Wrapf(err, "error reading input")
- }
- if strings.ToLower(answer)[0] != 'y' {
- return nil
- }
- }
- return volumePrune(runtime, getContext())
-}