From 1adca5ca0e2dc9ba123b104cf28ee18b75bff15e Mon Sep 17 00:00:00 2001 From: Roxie Gibson Date: Thu, 15 Jul 2021 06:17:47 +0100 Subject: [PATCH] feat: added app commands and flags for commands --- cli/app.go | 46 ++++++++++--- cli/common.go | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 213 insertions(+), 8 deletions(-) diff --git a/cli/app.go b/cli/app.go index 790ba57e..d458eeb3 100644 --- a/cli/app.go +++ b/cli/app.go @@ -4,51 +4,81 @@ import "github.com/urfave/cli/v2" var appNewCommand = &cli.Command{ Name: "new", + Flags: []cli.Flag{ + ServerFlag, + DomainFlag, + AppNameFlag, + PassFlag, + SecretsFlag, + }, } var appDeployCommand = &cli.Command{ Name: "deploy", + Flags: []cli.Flag{ + UpdateFlag, + ForceFlag, + SkipVersionCheckFlag, + NoDomainPollFlag, + }, } var appUndeployCommand = &cli.Command{ Name: "undeploy", } var appBackupCommand = &cli.Command{ - Name: "backup", + Name: "backup", + Flags: []cli.Flag{AllFlag}, } var appRestoreCommand = &cli.Command{ - Name: "restore", + Name: "restore", + Flags: []cli.Flag{AllFlag}, + ArgsUsage: " []", } var appListCommand = &cli.Command{ - Name: "list", + Name: "list", + Aliases: []string{"ls"}, + Flags: []cli.Flag{StatusFlag, ServerFlag, TypeFlag}, } var appCheckCommand = &cli.Command{ Name: "check", } var appCpCommand = &cli.Command{ - Name: "cp", + Name: "cp", + ArgsUsage: " ", } var appConfigCommand = &cli.Command{ Name: "config", } var appLogsCommand = &cli.Command{ - Name: "logs", + Name: "logs", + ArgsUsage: "[]", } var appPsCommand = &cli.Command{ Name: "ps", } var appRemoveCommand = &cli.Command{ - Name: "remove", + Name: "remove", + Flags: []cli.Flag{VolumesFlag, SecretsFlag}, } var appRunCommand = &cli.Command{ Name: "run", + Flags: []cli.Flag{ + NoTTYFlag, + UserFlag, + }, + ArgsUsage: " ...", } var appRollbackCommand = &cli.Command{ - Name: "rollback", + Name: "rollback", + ArgsUsage: "[]", } +// TODO: Replicating what the bash abra does might be hard +// with the mix of subcommands and flags var appSecretCommand = &cli.Command{ - Name: "secret", + Name: "secret", + Flags: []cli.Flag{AllFlag, PassFlag}, } var AppCommand = &cli.Command{ diff --git a/cli/common.go b/cli/common.go index adb0dd55..ee019b15 100644 --- a/cli/common.go +++ b/cli/common.go @@ -1,3 +1,178 @@ package cli +import ( + "github.com/urfave/cli/v2" +) + const emptyArgsUsage = " " // Removes "[arguments]" from help. Empty str's are ignored + +// Flags + +var Status bool +var StatusFlag = &cli.BoolFlag{ + Name: "status", + Value: false, + Destination: &Status, +} + +var Domain string +var DomainFlag = &cli.StringFlag{ + Name: "domain", + Value: "", + Destination: &Domain, +} + +var Server string +var ServerFlag = &cli.StringFlag{ + Name: "server", + Value: "", + Destination: &Server, +} + +var AppName string +var AppNameFlag = &cli.StringFlag{ + Name: "app-name", + Value: "", + Destination: &AppName, +} + +var Secrets bool +var SecretsFlag = &cli.BoolFlag{ + Name: "secrets", + Value: false, + Destination: &Secrets, +} + +var Pass bool +var PassFlag = &cli.BoolFlag{ + Name: "pass", + Value: false, + Destination: &Pass, +} + +var Force bool +var ForceFlag = &cli.BoolFlag{ + Name: "force", + Value: false, + Destination: &Force, +} + +var Update bool +var UpdateFlag = &cli.BoolFlag{ + Name: "update", + Value: false, + Destination: &Update, +} + +var NoDomainPoll bool +var NoDomainPollFlag = &cli.BoolFlag{ + Name: "no-domain-poll", + Value: false, + Destination: &NoDomainPoll, +} + +var SkipVersionCheck bool +var SkipVersionCheckFlag = &cli.BoolFlag{ + Name: "skip-version-check", + Value: false, + Destination: &SkipVersionCheck, +} + +var Volumes bool +var VolumesFlag = &cli.BoolFlag{ + Name: "volumes", + Value: false, + Destination: &Volumes, +} + +var All bool +var AllFlag = &cli.BoolFlag{ + Name: "all", + Value: false, + Destination: &All, +} + +var NoTTY bool +var NoTTYFlag = &cli.BoolFlag{ + Name: "no-tty", + Value: false, + Destination: &NoTTY, +} + +var User string +var UserFlag = &cli.StringFlag{ + Name: "user", + Value: "", + Destination: &User, +} + +var Env string +var EnvFlag = &cli.PathFlag{ + Name: "env", + Aliases: []string{"e"}, + Value: "", + Destination: &Env, +} + +var Verbose bool +var VerboseFlag = &cli.BoolFlag{ + Name: "verbose", + Aliases: []string{"V"}, + Value: false, + Destination: &Verbose, +} + +var Debug bool +var DebugFlag = &cli.BoolFlag{ + Name: "debug", + Aliases: []string{"d"}, + Value: false, + Destination: &Debug, +} + +var NoPrompt bool +var NoPromptFlag = &cli.BoolFlag{ + Name: "no-prompt", + Aliases: []string{"n"}, + Value: false, + Destination: &NoPrompt, +} + +var Branch string +var BranchFlag = &cli.StringFlag{ + Name: "branch", + Aliases: []string{"b"}, + Value: "", + Destination: &Branch, +} + +var SkipUpdate bool +var SkipUpdateFlag = &cli.BoolFlag{ + Name: "skip-update", + Aliases: []string{"U"}, + Value: false, + Destination: &SkipUpdate, +} + +var SkipCheck bool +var SkipCheckFlag = &cli.BoolFlag{ + Name: "skip-check", + Aliases: []string{"C"}, + Value: false, + Destination: &SkipCheck, +} + +var Stack string +var StackFlag = &cli.StringFlag{ + Name: "stack", + Aliases: []string{"s"}, + Value: "", + Destination: &Stack, +} + +var Type string +var TypeFlag = &cli.StringFlag{ + Name: "type", + Value: "", + Destination: &Type, +}