From cd82742af9f21c94daece7d63a0d39830356c79d Mon Sep 17 00:00:00 2001 From: Codeb Fan Date: Tue, 26 Jun 2018 18:07:49 +0800 Subject: [PATCH] Support extra args to run application. --- cmd/commands/run/run.go | 3 +++ cmd/commands/run/watch.go | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/cmd/commands/run/run.go b/cmd/commands/run/run.go index 2010e5f..17f73db 100644 --- a/cmd/commands/run/run.go +++ b/cmd/commands/run/run.go @@ -58,6 +58,8 @@ var ( currentGoPath string // Current runmode runmode string + // Extra args to run application + runargs string // Extra directories extraPackages utils.StrFlags ) @@ -71,6 +73,7 @@ func init() { CmdRun.Flag.BoolVar(&vendorWatch, "vendor", false, "Enable watch vendor folder.") CmdRun.Flag.StringVar(&buildTags, "tags", "", "Set the build tags. See: https://golang.org/pkg/go/build/") CmdRun.Flag.StringVar(&runmode, "runmode", "", "Set the Beego run mode.") + CmdRun.Flag.StringVar(&runargs, "runargs", "", "Extra args to run application") CmdRun.Flag.Var(&extraPackages, "ex", "List of extra package to watch.") exit = make(chan bool) commands.AvailableCommands = append(commands.AvailableCommands, CmdRun) diff --git a/cmd/commands/run/watch.go b/cmd/commands/run/watch.go index 825b7b9..b06e69a 100644 --- a/cmd/commands/run/watch.go +++ b/cmd/commands/run/watch.go @@ -200,7 +200,13 @@ func Start(appname string) { cmd = exec.Command(appname) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - cmd.Args = append([]string{appname}, config.Conf.CmdArgs...) + if runargs != "" { + r := regexp.MustCompile("'.+'|\".+\"|\\S+") + m := r.FindAllString(runargs, -1) + cmd.Args = append([]string{appname}, m...) + } else { + cmd.Args = append([]string{appname}, config.Conf.CmdArgs...) + } cmd.Env = append(os.Environ(), config.Conf.Envs...) go cmd.Run()