chan for run method

This commit is contained in:
alessio 2016-08-18 00:24:06 +02:00
parent a2bdcc17b0
commit 0d5dcd4718
2 changed files with 12 additions and 4 deletions

View File

@ -23,7 +23,7 @@ type Project struct {
Watcher Watcher `yaml:"app_watcher,omitempty"` Watcher Watcher `yaml:"app_watcher,omitempty"`
} }
func (p *Project) GoRun(channel chan bool, wr *sync.WaitGroup) error { func (p *Project) GoRun(channel chan bool, runner chan bool, wr *sync.WaitGroup) error {
name := strings.Split(p.Path, "/") name := strings.Split(p.Path, "/")
stop := make(chan bool,1) stop := make(chan bool,1)
var run string var run string
@ -51,6 +51,7 @@ func (p *Project) GoRun(channel chan bool, wr *sync.WaitGroup) error {
if err := build.Start(); err != nil { if err := build.Start(); err != nil {
Fail(err.Error()) Fail(err.Error())
} }
close(runner)
in := bufio.NewScanner(stdout) in := bufio.NewScanner(stdout)
go func() { go func() {

View File

@ -157,11 +157,18 @@ func (p *Project) build() {
func (p *Project) run(channel chan bool, wr *sync.WaitGroup) { func (p *Project) run(channel chan bool, wr *sync.WaitGroup) {
if p.Run{ if p.Run{
if p.Bin { if p.Bin {
runner := make(chan bool,1)
LogSuccess(p.Name + ": Running..") LogSuccess(p.Name + ": Running..")
go p.GoRun(channel, wr) go p.GoRun(channel, runner, wr)
for{
select {
case <- runner:
LogSuccess(p.Name + ": Runned") LogSuccess(p.Name + ": Runned")
return
}
}
}else{ }else{
LogFail("Set 'app_run' to true") LogFail("Set 'app_run' to true for launch run")
} }
} }
return return