forked from toolshed/abra
		
	feat: added app commands and flags for commands
This commit is contained in:
		
							
								
								
									
										30
									
								
								cli/app.go
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								cli/app.go
									
									
									
									
									
								
							| @ -4,33 +4,53 @@ import "github.com/urfave/cli/v2" | |||||||
|  |  | ||||||
| var appNewCommand = &cli.Command{ | var appNewCommand = &cli.Command{ | ||||||
| 	Name: "new", | 	Name: "new", | ||||||
|  | 	Flags: []cli.Flag{ | ||||||
|  | 		ServerFlag, | ||||||
|  | 		DomainFlag, | ||||||
|  | 		AppNameFlag, | ||||||
|  | 		PassFlag, | ||||||
|  | 		SecretsFlag, | ||||||
|  | 	}, | ||||||
| } | } | ||||||
| var appDeployCommand = &cli.Command{ | var appDeployCommand = &cli.Command{ | ||||||
| 	Name: "deploy", | 	Name: "deploy", | ||||||
|  | 	Flags: []cli.Flag{ | ||||||
|  | 		UpdateFlag, | ||||||
|  | 		ForceFlag, | ||||||
|  | 		SkipVersionCheckFlag, | ||||||
|  | 		NoDomainPollFlag, | ||||||
|  | 	}, | ||||||
| } | } | ||||||
| var appUndeployCommand = &cli.Command{ | var appUndeployCommand = &cli.Command{ | ||||||
| 	Name: "undeploy", | 	Name: "undeploy", | ||||||
| } | } | ||||||
| var appBackupCommand = &cli.Command{ | var appBackupCommand = &cli.Command{ | ||||||
| 	Name:  "backup", | 	Name:  "backup", | ||||||
|  | 	Flags: []cli.Flag{AllFlag}, | ||||||
| } | } | ||||||
| var appRestoreCommand = &cli.Command{ | var appRestoreCommand = &cli.Command{ | ||||||
| 	Name:      "restore", | 	Name:      "restore", | ||||||
|  | 	Flags:     []cli.Flag{AllFlag}, | ||||||
|  | 	ArgsUsage: "<service> [<backup file>]", | ||||||
| } | } | ||||||
| var appListCommand = &cli.Command{ | var appListCommand = &cli.Command{ | ||||||
| 	Name:    "list", | 	Name:    "list", | ||||||
|  | 	Aliases: []string{"ls"}, | ||||||
|  | 	Flags:   []cli.Flag{StatusFlag, ServerFlag, TypeFlag}, | ||||||
| } | } | ||||||
| var appCheckCommand = &cli.Command{ | var appCheckCommand = &cli.Command{ | ||||||
| 	Name: "check", | 	Name: "check", | ||||||
| } | } | ||||||
| var appCpCommand = &cli.Command{ | var appCpCommand = &cli.Command{ | ||||||
| 	Name:      "cp", | 	Name:      "cp", | ||||||
|  | 	ArgsUsage: "<src> <dst>", | ||||||
| } | } | ||||||
| var appConfigCommand = &cli.Command{ | var appConfigCommand = &cli.Command{ | ||||||
| 	Name: "config", | 	Name: "config", | ||||||
| } | } | ||||||
| var appLogsCommand = &cli.Command{ | var appLogsCommand = &cli.Command{ | ||||||
| 	Name:      "logs", | 	Name:      "logs", | ||||||
|  | 	ArgsUsage: "[<service>]", | ||||||
| } | } | ||||||
|  |  | ||||||
| var appPsCommand = &cli.Command{ | var appPsCommand = &cli.Command{ | ||||||
| @ -38,17 +58,27 @@ var appPsCommand = &cli.Command{ | |||||||
| } | } | ||||||
| var appRemoveCommand = &cli.Command{ | var appRemoveCommand = &cli.Command{ | ||||||
| 	Name:  "remove", | 	Name:  "remove", | ||||||
|  | 	Flags: []cli.Flag{VolumesFlag, SecretsFlag}, | ||||||
| } | } | ||||||
| var appRunCommand = &cli.Command{ | var appRunCommand = &cli.Command{ | ||||||
| 	Name: "run", | 	Name: "run", | ||||||
|  | 	Flags: []cli.Flag{ | ||||||
|  | 		NoTTYFlag, | ||||||
|  | 		UserFlag, | ||||||
|  | 	}, | ||||||
|  | 	ArgsUsage: "<service> <args>...", | ||||||
| } | } | ||||||
|  |  | ||||||
| var appRollbackCommand = &cli.Command{ | var appRollbackCommand = &cli.Command{ | ||||||
| 	Name:      "rollback", | 	Name:      "rollback", | ||||||
|  | 	ArgsUsage: "[<version>]", | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // TODO: Replicating what the bash abra does might be hard | ||||||
|  | // with the mix of subcommands and flags | ||||||
| var appSecretCommand = &cli.Command{ | var appSecretCommand = &cli.Command{ | ||||||
| 	Name:  "secret", | 	Name:  "secret", | ||||||
|  | 	Flags: []cli.Flag{AllFlag, PassFlag}, | ||||||
| } | } | ||||||
|  |  | ||||||
| var AppCommand = &cli.Command{ | var AppCommand = &cli.Command{ | ||||||
|  | |||||||
							
								
								
									
										175
									
								
								cli/common.go
									
									
									
									
									
								
							
							
						
						
									
										175
									
								
								cli/common.go
									
									
									
									
									
								
							| @ -1,3 +1,178 @@ | |||||||
| package cli | package cli | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"github.com/urfave/cli/v2" | ||||||
|  | ) | ||||||
|  |  | ||||||
| const emptyArgsUsage = " " // Removes "[arguments]" from help. Empty str's are ignored | 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, | ||||||
|  | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user