mirror of
https://github.com/containers/podman.git
synced 2025-12-09 23:27:09 +08:00
Migrate to cobra CLI
We intend to migrate to the cobra cli from urfave/cli because the project is more well maintained. There are also some technical reasons as well which extend into our remote client work. Signed-off-by: baude <bbaude@redhat.com>
This commit is contained in:
@@ -3,44 +3,46 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/containers/libpod/cmd/podman/cliconfig"
|
||||
"github.com/containers/libpod/cmd/podman/libpodruntime"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/urfave/cli"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
var (
|
||||
podStartFlags = []cli.Flag{
|
||||
cli.BoolFlag{
|
||||
Name: "all, a",
|
||||
Usage: "Start all running pods",
|
||||
},
|
||||
LatestPodFlag,
|
||||
}
|
||||
podStartCommand cliconfig.PodStartValues
|
||||
podStartDescription = `
|
||||
podman pod start
|
||||
|
||||
Starts one or more pods. The pod name or ID can be used.
|
||||
`
|
||||
|
||||
podStartCommand = cli.Command{
|
||||
Name: "start",
|
||||
Usage: "Start one or more pods",
|
||||
Description: podStartDescription,
|
||||
Flags: sortFlags(podStartFlags),
|
||||
Action: podStartCmd,
|
||||
ArgsUsage: "POD-NAME [POD-NAME ...]",
|
||||
UseShortOptionHandling: true,
|
||||
OnUsageError: usageErrorHandler,
|
||||
_podStartCommand = &cobra.Command{
|
||||
Use: "start",
|
||||
Short: "Start one or more pods",
|
||||
Long: podStartDescription,
|
||||
RunE: func(cmd *cobra.Command, args []string) error {
|
||||
podStartCommand.InputArgs = args
|
||||
podStartCommand.GlobalFlags = MainGlobalOpts
|
||||
return podStartCmd(&podStartCommand)
|
||||
},
|
||||
Example: "POD-NAME [POD-NAME ...]",
|
||||
}
|
||||
)
|
||||
|
||||
func podStartCmd(c *cli.Context) error {
|
||||
if err := checkMutuallyExclusiveFlags(c); err != nil {
|
||||
func init() {
|
||||
podStartCommand.Command = _podStartCommand
|
||||
flags := podStartCommand.Flags()
|
||||
flags.BoolVarP(&podStartCommand.All, "all", "a", false, "Start all pods")
|
||||
flags.BoolVarP(&podStartCommand.Latest, "latest", "l", false, "Start the latest pod podman is aware of")
|
||||
}
|
||||
|
||||
func podStartCmd(c *cliconfig.PodStartValues) error {
|
||||
if err := checkMutuallyExclusiveFlags(&c.PodmanCommand); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
runtime, err := libpodruntime.GetRuntime(c)
|
||||
runtime, err := libpodruntime.GetRuntime(&c.PodmanCommand)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "could not get runtime")
|
||||
}
|
||||
@@ -49,7 +51,7 @@ func podStartCmd(c *cli.Context) error {
|
||||
// getPodsFromContext returns an error when a requested pod
|
||||
// isn't found. The only fatal error scenerio is when there are no pods
|
||||
// in which case the following loop will be skipped.
|
||||
pods, lastError := getPodsFromContext(c, runtime)
|
||||
pods, lastError := getPodsFromContext(&c.PodmanCommand, runtime)
|
||||
|
||||
ctx := getContext()
|
||||
for _, pod := range pods {
|
||||
|
||||
Reference in New Issue
Block a user