summaryrefslogtreecommitdiff
path: root/cmd/podman/cliconfig
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2019-01-31 13:20:04 -0600
committerbaude <bbaude@redhat.com>2019-02-08 10:26:43 -0600
commit25a3923b61a5ca014318e6d957f68abd03947297 (patch)
tree2ccb4a0bd9bda70c1c258dcb1b8aca8961d9ad30 /cmd/podman/cliconfig
parent962850c6e0dfcee926af31fc0ad24f1f6c26f8ac (diff)
downloadpodman-25a3923b61a5ca014318e6d957f68abd03947297.tar.gz
podman-25a3923b61a5ca014318e6d957f68abd03947297.tar.bz2
podman-25a3923b61a5ca014318e6d957f68abd03947297.zip
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>
Diffstat (limited to 'cmd/podman/cliconfig')
-rw-r--r--cmd/podman/cliconfig/commands.go109
-rw-r--r--cmd/podman/cliconfig/config.go541
-rw-r--r--cmd/podman/cliconfig/create.go22
3 files changed, 672 insertions, 0 deletions
diff --git a/cmd/podman/cliconfig/commands.go b/cmd/podman/cliconfig/commands.go
new file mode 100644
index 000000000..7d1e762d9
--- /dev/null
+++ b/cmd/podman/cliconfig/commands.go
@@ -0,0 +1,109 @@
+package cliconfig
+
+// GlobalIsSet is a compatibility method for urfave
+func (p *PodmanCommand) GlobalIsSet(opt string) bool {
+ flag := p.PersistentFlags().Lookup(opt)
+ if flag == nil {
+ return false
+ }
+ return flag.Changed
+}
+
+// IsSet is a compatibility method for urfave
+func (p *PodmanCommand) IsSet(opt string) bool {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return false
+ }
+ return flag.Changed
+}
+
+// Bool is a compatibility method for urfave
+func (p *PodmanCommand) Bool(opt string) bool {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return false
+ }
+ val, _ := p.Flags().GetBool(opt)
+ return val
+}
+
+// String is a compatibility method for urfave
+func (p *PodmanCommand) String(opt string) string {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return ""
+ }
+ val, _ := p.Flags().GetString(opt)
+ return val
+}
+
+// StringArray is a compatibility method for urfave
+func (p *PodmanCommand) StringArray(opt string) []string {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return []string{}
+ }
+ val, _ := p.Flags().GetStringArray(opt)
+ return val
+}
+
+// StringSlice is a compatibility method for urfave
+func (p *PodmanCommand) StringSlice(opt string) []string {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return []string{}
+ }
+ val, _ := p.Flags().GetStringSlice(opt)
+ return val
+}
+
+// Int is a compatibility method for urfave
+func (p *PodmanCommand) Int(opt string) int {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return 0
+ }
+ val, _ := p.Flags().GetInt(opt)
+ return val
+}
+
+// Unt is a compatibility method for urfave
+func (p *PodmanCommand) Uint(opt string) uint {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return 0
+ }
+ val, _ := p.Flags().GetUint(opt)
+ return val
+}
+
+// Int64 is a compatibility method for urfave
+func (p *PodmanCommand) Int64(opt string) int64 {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return 0
+ }
+ val, _ := p.Flags().GetInt64(opt)
+ return val
+}
+
+// Unt64 is a compatibility method for urfave
+func (p *PodmanCommand) Uint64(opt string) uint64 {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return 0
+ }
+ val, _ := p.Flags().GetUint64(opt)
+ return val
+}
+
+// Float64 is a compatibility method for urfave
+func (p *PodmanCommand) Float64(opt string) float64 {
+ flag := p.Flags().Lookup(opt)
+ if flag == nil {
+ return 0
+ }
+ val, _ := p.Flags().GetFloat64(opt)
+ return val
+}
diff --git a/cmd/podman/cliconfig/config.go b/cmd/podman/cliconfig/config.go
new file mode 100644
index 000000000..b925d29ff
--- /dev/null
+++ b/cmd/podman/cliconfig/config.go
@@ -0,0 +1,541 @@
+package cliconfig
+
+import (
+ "github.com/spf13/cobra"
+)
+
+type PodmanCommand struct {
+ *cobra.Command
+ InputArgs []string
+ GlobalFlags MainFlags
+}
+
+type MainFlags struct {
+ CGroupManager string
+ CniConfigDir string
+ ConmonPath string
+ DefaultMountsFile string
+ HooksDir []string
+ MaxWorks int
+ Namespace string
+ Root string
+ Runroot string
+ Runtime string
+ StorageDriver string
+ StorageOpts []string
+ Syslog bool
+
+ Config string
+ CpuProfile string
+ LogLevel string
+ TmpDir string
+}
+
+type AttachValues struct {
+ PodmanCommand
+ DetachKeys string
+ Latest bool
+ NoStdin bool
+ SigProxy bool
+}
+
+type ImagesValues struct {
+ PodmanCommand
+ All bool
+ Digests bool
+ Filter []string
+ Format string
+ Noheading bool
+ NoTrunc bool
+ Quiet bool
+ Sort string
+}
+
+type TagValues struct {
+ PodmanCommand
+}
+
+type WaitValues struct {
+ PodmanCommand
+ Interval uint
+ Latest bool
+}
+
+type CheckpointValues struct {
+ PodmanCommand
+ Keep bool
+ LeaveRunning bool
+ TcpEstablished bool
+ All bool
+ Latest bool
+}
+
+type CommitValues struct {
+ PodmanCommand
+ Change []string
+ Format string
+ Message string
+ Author string
+ Pause bool
+ Quiet bool
+}
+
+type ContainersPrune struct {
+ PodmanCommand
+}
+
+type DiffValues struct {
+ PodmanCommand
+ Archive bool
+ Format string
+}
+
+type ExecValues struct {
+ PodmanCommand
+ Env []string
+ Privileged bool
+ Interfactive bool
+ Tty bool
+ User string
+ Latest bool
+ Workdir string
+}
+
+type ImageExistsValues struct {
+ PodmanCommand
+}
+
+type ContainerExistsValues struct {
+ PodmanCommand
+}
+
+type PodExistsValues struct {
+ PodmanCommand
+}
+
+type ExportValues struct {
+ PodmanCommand
+ Output string
+}
+
+type GenerateKubeValues struct {
+ PodmanCommand
+ Service bool
+}
+
+type HistoryValues struct {
+ PodmanCommand
+ Human bool
+ NoTrunc bool
+ Quiet bool
+ Format string
+}
+type PruneImagesValues struct {
+ PodmanCommand
+ All bool
+}
+
+type ImportValues struct {
+ PodmanCommand
+ Change []string
+ Message string
+ Quiet bool
+}
+
+type InfoValues struct {
+ PodmanCommand
+ Debug bool
+ Format string
+}
+
+type InspectValues struct {
+ PodmanCommand
+ TypeObject string
+ Format string
+ Size bool
+ Latest bool
+}
+
+type KillValues struct {
+ PodmanCommand
+ All bool
+ Signal string
+ Latest bool
+}
+
+type LoadValues struct {
+ PodmanCommand
+ Input string
+ Quiet bool
+ SignaturePolicy string
+}
+
+type LoginValues struct {
+ PodmanCommand
+ Password string
+ Username string
+ Authfile string
+ CertDir string
+ GetLogin bool
+ TlsVerify bool
+}
+
+type LogoutValues struct {
+ PodmanCommand
+ Authfile string
+ All bool
+}
+
+type LogsValues struct {
+ PodmanCommand
+ Details bool
+ Follow bool
+ Since string
+ Tail uint64
+ Timestamps bool
+ Latest bool
+}
+
+type MountValues struct {
+ PodmanCommand
+ All bool
+ Format string
+ NoTrunc bool
+ Latest bool
+}
+
+type PauseValues struct {
+ PodmanCommand
+ All bool
+}
+
+type KubePlayValues struct {
+ PodmanCommand
+ Authfile string
+ CertDir string
+ Creds string
+ Quiet bool
+ SignaturePolicy string
+ TlsVerify bool
+}
+
+type PodCreateValues struct {
+ PodmanCommand
+ CgroupParent string
+ Infra bool
+ InfraImage string
+ InfraCommand string
+ LabelFile []string
+ Labels []string
+ Name string
+ PodIDFile string
+ Publish []string
+ Share string
+}
+
+type PodInspectValues struct {
+ PodmanCommand
+ Latest bool
+}
+
+type PodKillValues struct {
+ PodmanCommand
+ All bool
+ Signal string
+ Latest bool
+}
+
+type PodPauseValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+}
+
+type PodPsValues struct {
+ PodmanCommand
+ CtrNames bool
+ CtrIDs bool
+ CtrStatus bool
+ Filter string
+ Format string
+ Latest bool
+ Namespace bool
+ NoTrunc bool
+ Quiet bool
+ Sort string
+}
+
+type PodRestartValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+}
+
+type PodRmValues struct {
+ PodmanCommand
+ All bool
+ Force bool
+ Latest bool
+}
+
+type PodStartValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+}
+type PodStatsValues struct {
+ PodmanCommand
+ All bool
+ NoStream bool
+ NoReset bool
+ Format string
+ Latest bool
+}
+
+type PodStopValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+ Timeout uint
+}
+
+type PodTopValues struct {
+ PodmanCommand
+ Latest bool
+ ListDescriptors bool
+}
+type PodUnpauseValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+}
+
+type PortValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+}
+
+type PsValues struct {
+ PodmanCommand
+ All bool
+ Filter []string
+ Format string
+ Last int
+ Latest bool
+ Namespace bool
+ NoTrunct bool
+ Pod bool
+ Quiet bool
+ Size bool
+ Sort string
+ Sync bool
+}
+
+type PullValues struct {
+ PodmanCommand
+ Authfile string
+ CertDir string
+ Creds string
+ Quiet bool
+ SignaturePolicy string
+ TlsVerify bool
+}
+
+type PushValues struct {
+ PodmanCommand
+ Authfile string
+ CertDir string
+ Compress bool
+ Creds string
+ Format string
+ Quiet bool
+ RemoveSignatures bool
+ SignBy string
+ SignaturePolicy string
+ TlsVerify bool
+}
+
+type RefreshValues struct {
+ PodmanCommand
+}
+
+type RestartValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+ Running bool
+ Timeout uint
+}
+
+type RestoreValues struct {
+ PodmanCommand
+ All bool
+ Keep bool
+ Latest bool
+ TcpEstablished bool
+}
+
+type RmValues struct {
+ PodmanCommand
+ All bool
+ Force bool
+ Latest bool
+ Volumes bool
+}
+
+type RmiValues struct {
+ PodmanCommand
+ All bool
+ Force bool
+}
+
+type RunlabelValues struct {
+ PodmanCommand
+ Authfile string
+ Display bool
+ CertDir string
+ Creds string
+ Name string
+ Opt1 string
+ Opt2 string
+ Opt3 string
+ Quiet bool
+ Pull bool
+ SignaturePolicy string
+ TlsVerify bool
+}
+type SaveValues struct {
+ PodmanCommand
+ Compress bool
+ Format string
+ Output string
+ Quiet bool
+}
+
+type SearchValues struct {
+ PodmanCommand
+ Authfile string
+ Filter []string
+ Format string
+ Limit int
+ NoTrunc bool
+ TlsVerify bool
+}
+
+type SignValues struct {
+ PodmanCommand
+ Directory string
+ SignBy string
+}
+
+type StartValues struct {
+ PodmanCommand
+ Attach bool
+ DetachKeys string
+ Interactive bool
+ Latest bool
+ SigProxy bool
+}
+
+type StatsValues struct {
+ PodmanCommand
+ All bool
+ Format string
+ Latest bool
+ NoReset bool
+ NoStream bool
+}
+
+type StopValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+ Timeout uint
+}
+
+type TopValues struct {
+ PodmanCommand
+ Latest bool
+ ListDescriptors bool
+}
+
+type UmountValues struct {
+ PodmanCommand
+ All bool
+ Force bool
+ Latest bool
+}
+
+type UnpauseValues struct {
+ PodmanCommand
+ All bool
+}
+
+type VarlinkValues struct {
+ PodmanCommand
+ Timeout int64
+}
+
+type SetTrustValues struct {
+ PodmanCommand
+ PolicyPath string
+ PubKeysFile []string
+ TrustType string
+}
+
+type ShowTrustValues struct {
+ PodmanCommand
+ Json bool
+ PolicyPath string
+ Raw bool
+ RegistryPath string
+}
+
+type VersionValues struct {
+ PodmanCommand
+ Format string
+}
+
+type VolumeCreateValues struct {
+ PodmanCommand
+ Driver string
+ Label []string
+ Opt []string
+}
+type VolumeInspectValues struct {
+ PodmanCommand
+ All bool
+ Format string
+}
+
+type VolumeLsValues struct {
+ PodmanCommand
+ Filter string
+ Format string
+ Quiet bool
+}
+
+type VolumePruneValues struct {
+ PodmanCommand
+ Force bool
+}
+
+type VolumeRmValues struct {
+ PodmanCommand
+ All bool
+ Force bool
+}
+
+type CleanupValues struct {
+ PodmanCommand
+ All bool
+ Latest bool
+}
+
+type SystemPruneValues struct {
+ PodmanCommand
+ All bool
+ Force bool
+ Volume bool
+}
diff --git a/cmd/podman/cliconfig/create.go b/cmd/podman/cliconfig/create.go
new file mode 100644
index 000000000..68ba4d857
--- /dev/null
+++ b/cmd/podman/cliconfig/create.go
@@ -0,0 +1,22 @@
+package cliconfig
+
+import (
+ buildahcli "github.com/containers/buildah/pkg/cli"
+)
+
+type CreateValues struct {
+ PodmanCommand
+}
+
+type RunValues struct {
+ PodmanCommand
+}
+
+type BuildValues struct {
+ PodmanCommand
+ *buildahcli.BudResults
+ *buildahcli.UserNSResults
+ *buildahcli.FromAndBudResults
+ *buildahcli.NameSpaceResults
+ *buildahcli.LayerResults
+}