Initial custom args support

This commit is contained in:
Daniele Conventi 2016-08-26 14:52:27 +02:00
parent afd9988c8c
commit deab7b717d
3 changed files with 21 additions and 8 deletions

View File

@ -69,6 +69,12 @@ func main() {
}, },
Action: func(p *cli.Context) error { Action: func(p *cli.Context) error {
y := r.New(p) y := r.New(p)
if p.NArg() > 0 {
y.Projects[0].Params = make([]string, p.NArg() - 1)
for i := 1; i < p.NArg(); i++ {
y.Projects[0].Params[i - 1] = p.Args().Get(i)
}
}
return handle(y.Fast(p)) return handle(y.Fast(p))
}, },
Before: func(c *cli.Context) error { Before: func(c *cli.Context) error {

View File

@ -16,20 +16,26 @@ import (
type Project struct { type Project struct {
reload time.Time reload time.Time
base string base string
Name string `yaml:"app_name,omitempty"` Name string `yaml:"app_name,omitempty"`
Path string `yaml:"app_path,omitempty"` Path string `yaml:"app_path,omitempty"`
Run bool `yaml:"app_run,omitempty"` Run bool `yaml:"app_run,omitempty"`
Bin bool `yaml:"app_bin,omitempty"` Bin bool `yaml:"app_bin,omitempty"`
Build bool `yaml:"app_build,omitempty"` Build bool `yaml:"app_build,omitempty"`
Fmt bool `yaml:"app_fmt,omitempty"` Fmt bool `yaml:"app_fmt,omitempty"`
Watcher Watcher `yaml:"app_watcher,omitempty"` Params []string `yaml:"app_params,omitempty"`
Watcher Watcher `yaml:"app_watcher,omitempty"`
} }
// GoRun is an implementation of the bin execution // GoRun is an implementation of the bin execution
func (p *Project) GoRun(channel chan bool, runner chan bool, wr *sync.WaitGroup) error { func (p *Project) GoRun(channel chan bool, runner chan bool, wr *sync.WaitGroup) error {
stop := make(chan bool, 1) stop := make(chan bool, 1)
build := exec.Command(filepath.Join(os.Getenv("GOBIN"), filepath.Base(p.Path))) var build *exec.Cmd
if len(p.Params) != 0 {
build = exec.Command(filepath.Join(os.Getenv("GOBIN"), filepath.Base(p.Path)), p.Params...)
} else{
build = exec.Command(filepath.Join(os.Getenv("GOBIN"), filepath.Base(p.Path)))
}
build.Dir = p.base build.Dir = p.base
defer func() { defer func() {
if err := build.Process.Kill(); err != nil { if err := build.Process.Kill(); err != nil {

View File

@ -41,6 +41,7 @@ func (h *Config) Watch() error {
// Fast method run a project from his working directory without makes a config file // Fast method run a project from his working directory without makes a config file
func (h *Config) Fast(params *cli.Context) error { func (h *Config) Fast(params *cli.Context) error {
log.Println(h.Projects[0])
fast := h.Projects[0] fast := h.Projects[0]
// Takes the values from config if wd path match with someone else // Takes the values from config if wd path match with someone else
if params.Bool("config") { if params.Bool("config") {