diff --git a/cli/app/backup.go b/cli/app/backup.go index 4baf23a9..16423728 100644 --- a/cli/app/backup.go +++ b/cli/app/backup.go @@ -287,10 +287,10 @@ var appBackupCommand = cli.Command{ Aliases: []string{"b"}, Usage: "Manage app backups", ArgsUsage: "", - Subcommands: []cli.Command{ - appBackupListCommand, - appBackupSnapshotsCommand, - appBackupDownloadCommand, - appBackupCreateCommand, + Subcommands: []*cli.Command{ + &appBackupListCommand, + &appBackupSnapshotsCommand, + &appBackupDownloadCommand, + &appBackupCreateCommand, }, } diff --git a/cli/app/cmd.go b/cli/app/cmd.go index 0e0eca3b..c0289396 100644 --- a/cli/app/cmd.go +++ b/cli/app/cmd.go @@ -84,7 +84,7 @@ Example: internal.ShowSubcommandHelpAndError(c, errors.New("cannot use --local & --user together")) } - hasCmdArgs, parsedCmdArgs := parseCmdArgs(c.Args().Slice(), internal.LocalCmd) + hasCmdArgs, parsedCmdArgs := parseCmdArgs(c.Args().Slice()) abraSh := path.Join(config.RECIPES_DIR, app.Recipe, "abra.sh") if _, err := os.Stat(abraSh); err != nil { @@ -180,23 +180,15 @@ Example: }, } -func parseCmdArgs(args []string, isLocal bool) (bool, string) { - var ( - parsedCmdArgs string - hasCmdArgs bool - ) - - if isLocal { - if len(args) > 3 { - return true, fmt.Sprintf("%s ", strings.Join(args[3:], " ")) - } - } else { - if len(args) > 3 { - return true, fmt.Sprintf("%s ", strings.Join(args[3:], " ")) - } +// Parse the command arguments from the cli args. +// Arguments should look like this: +// DOMAIN COMMAND -- ARGUMENT1 ARGUMENT2 ... +func parseCmdArgs(args []string) (bool, string) { + if len(args) < 4 { + return false, "" } - return hasCmdArgs, parsedCmdArgs + return true, fmt.Sprintf("%s ", strings.Join(args[3:], " ")) } func cmdNameComplete(appName string) { diff --git a/cli/app/cmd_test.go b/cli/app/cmd_test.go index ed3ac6f9..cfd975c5 100644 --- a/cli/app/cmd_test.go +++ b/cli/app/cmd_test.go @@ -20,7 +20,7 @@ func TestParseCmdArgs(t *testing.T) { } for _, test := range tests { - ok, parsed := parseCmdArgs(test.input, false) + ok, parsed := parseCmdArgs(test.input) if ok != test.shouldParse { t.Fatalf("[%s] should not parse", strings.Join(test.input, " ")) } diff --git a/cli/app/new.go b/cli/app/new.go index 00c6a3b6..2a6560b5 100644 --- a/cli/app/new.go +++ b/cli/app/new.go @@ -58,7 +58,7 @@ var appNewCommand = cli.Command{ ArgsUsage: "[] []", BashComplete: func(ctx *cli.Context) { args := ctx.Args() - switch len(args) { + switch args.Len() { case 0: autocomplete.RecipeNameComplete(ctx) case 1: diff --git a/tests/integration/helpers/app.bash b/tests/integration/helpers/app.bash index a6c2420e..bf1368a5 100644 --- a/tests/integration/helpers/app.bash +++ b/tests/integration/helpers/app.bash @@ -15,7 +15,7 @@ _deploy_app() { run $ABRA app deploy --no-input "$TEST_APP_DOMAIN" assert_success - run $ABRA app --server "$TEST_SERVER" --status + run $ABRA app ls --server "$TEST_SERVER" --status assert_success assert_output --partial "$TEST_APP_DOMAIN" assert_output --partial 'deployed' @@ -25,7 +25,7 @@ _undeploy_app() { run $ABRA app undeploy --no-input "$TEST_APP_DOMAIN" assert_success - run $ABRA app ls --server "$TEST_SERVER" --status + run $ABRA app ls --server "$TEST_SERVER" --status assert_success assert_output --partial "$TEST_APP_DOMAIN" assert_output --partial 'unknown'