|
|
@ -39,6 +39,7 @@ var mappings = map[string]func(string) string{
|
|
39
|
39
|
}
|
|
40
|
40
|
|
|
41
|
41
|
var delay = flag.Duration("delay", 1*time.Second, "time to wait until restart")
|
|
|
42
|
var autoRestart = flag.Bool("autorestart", true, "restart after command exists")
|
|
42
|
43
|
|
|
43
|
44
|
func main() {
|
|
44
|
45
|
log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
|
|
|
@ -68,7 +69,7 @@ func main() {
|
|
68
|
69
|
log.Fatalf("error: no mapping found for `%s'", file)
|
|
69
|
70
|
}
|
|
70
|
71
|
|
|
71
|
|
runner := MakeRunner(fn(file))
|
|
|
72
|
runner := &Runner{nil, fn(file), false, *autoRestart}
|
|
72
|
73
|
go runCmd(file, runner)
|
|
73
|
74
|
|
|
74
|
75
|
c := make(chan os.Signal, 1)
|
|
|
@ -105,10 +106,6 @@ type Runner struct {
|
|
105
|
106
|
restart bool
|
|
106
|
107
|
}
|
|
107
|
108
|
|
|
108
|
|
func MakeRunner(shellCmd string) *Runner {
|
|
109
|
|
return &Runner{nil, shellCmd, false, true}
|
|
110
|
|
}
|
|
111
|
|
|
|
112
|
109
|
func (r *Runner) Start() error {
|
|
113
|
110
|
if r.started {
|
|
114
|
111
|
return errors.New("already started, use Restart()")
|
|
|
@ -125,6 +122,7 @@ func (r *Runner) Start() error {
|
|
125
|
122
|
|
|
126
|
123
|
time.Sleep(*delay)
|
|
127
|
124
|
if !r.restart {
|
|
|
125
|
r.started = false
|
|
128
|
126
|
break
|
|
129
|
127
|
}
|
|
130
|
128
|
}
|
|
|
@ -142,7 +140,11 @@ func (r *Runner) Kill() error {
|
|
142
|
140
|
}
|
|
143
|
141
|
|
|
144
|
142
|
func (r *Runner) Restart() error {
|
|
145
|
|
return r.Kill()
|
|
|
143
|
if r.started {
|
|
|
144
|
return r.Kill()
|
|
|
145
|
} else {
|
|
|
146
|
return r.Start()
|
|
|
147
|
}
|
|
146
|
148
|
}
|
|
147
|
149
|
|
|
148
|
150
|
func (r *Runner) Stop() {
|