diff --git a/cli/app/cmd.go b/cli/app/cmd.go index 7f57dcb8..36cbf1da 100644 --- a/cli/app/cmd.go +++ b/cli/app/cmd.go @@ -79,6 +79,20 @@ Example: logrus.Fatal(err) } + var parsedCmdArgs string + var cmdArgsIdx int + var hasCmdArgs bool + for idx, arg := range c.Args() { + if arg == "--" { + cmdArgsIdx = idx + hasCmdArgs = true + } + + if hasCmdArgs && idx > cmdArgsIdx { + parsedCmdArgs += fmt.Sprintf("%s ", c.Args().Get(idx)) + } + } + if localCmd { cmdName := c.Args().Get(1) if err := ensureCommand(abraSh, app.Recipe, cmdName); err != nil { @@ -87,8 +101,17 @@ Example: logrus.Debugf("--local detected, running %s on local work station", cmdName) - sourceAndExec := fmt.Sprintf("TARGET=local; APP_NAME=%s; . %s; %s", app.StackName(), abraSh, cmdName) + var sourceAndExec string + if hasCmdArgs { + logrus.Debugf("parsed following command arguments: %s", parsedCmdArgs) + sourceAndExec = fmt.Sprintf("TARGET=local; APP_NAME=%s; . %s; %s %s", app.StackName(), abraSh, cmdName, parsedCmdArgs) + } else { + logrus.Debug("did not detect any command arguments") + sourceAndExec = fmt.Sprintf("TARGET=local; APP_NAME=%s; . %s; %s", app.StackName(), abraSh, cmdName) + } + cmd := exec.Command("/bin/sh", "-c", sourceAndExec) + if err := internal.RunCmd(cmd); err != nil { logrus.Fatal(err) } @@ -118,20 +141,6 @@ Example: logrus.Debugf("running command %s within the context of %s_%s", cmdName, app.StackName(), targetServiceName) - var parsedCmdArgs string - var cmdArgsIdx int - var hasCmdArgs bool - for idx, arg := range c.Args() { - if arg == "--" { - cmdArgsIdx = idx - hasCmdArgs = true - } - - if hasCmdArgs && idx > cmdArgsIdx { - parsedCmdArgs += fmt.Sprintf("%s ", c.Args().Get(idx)) - } - } - if hasCmdArgs { logrus.Debugf("parsed following command arguments: %s", parsedCmdArgs) } else {