set up return codes
This commit is contained in:
parent
c8b8149be0
commit
baad47e981
2 changed files with 19 additions and 6 deletions
|
@ -313,8 +313,9 @@ func startMessage(l Listen) {
|
|||
}
|
||||
}
|
||||
|
||||
func (l Listen) Run() {
|
||||
func (l Listen) Run() int {
|
||||
// catch ^C
|
||||
ret := 0
|
||||
quit := make(chan bool)
|
||||
c := make(chan os.Signal, 1)
|
||||
signal.Notify(c, os.Interrupt)
|
||||
|
@ -344,6 +345,7 @@ func (l Listen) Run() {
|
|||
for {
|
||||
if !triggered {
|
||||
fmt.Println()
|
||||
ret = 130
|
||||
break
|
||||
}
|
||||
<-c
|
||||
|
@ -355,4 +357,5 @@ func (l Listen) Run() {
|
|||
printStatus("& Exiting...\n")
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
|
20
main.go
20
main.go
|
@ -66,7 +66,7 @@ func validateArgs(opts Options, commandLen int) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func setup(opts Options, command []string) {
|
||||
func setup(opts Options, command []string) int {
|
||||
var filesMap map[string]bool = make(map[string]bool)
|
||||
var cksumMap map[string][]byte = make(map[string][]byte)
|
||||
var intervalMap map[string]time.Time = make(map[string]time.Time)
|
||||
|
@ -104,11 +104,14 @@ func setup(opts Options, command []string) {
|
|||
|
||||
if success {
|
||||
l := Listen{filesMap, cksumMap, intervalMap, opts.Condition, opts.NoChecksum, intervalDuration, command, opts.Quiet, opts.RunFirst}
|
||||
l.Run()
|
||||
return l.Run()
|
||||
}
|
||||
|
||||
return -1
|
||||
}
|
||||
|
||||
func main() {
|
||||
ret := 0
|
||||
opts := Options{}
|
||||
parser := flags.NewParser(&opts, flags.Default)
|
||||
parser.Usage = "[OPTIONS] -- [COMMAND]"
|
||||
|
@ -116,8 +119,12 @@ func main() {
|
|||
|
||||
defer func() {
|
||||
if err := recover(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "%s\n", err)
|
||||
os.Exit(1)
|
||||
switch ret {
|
||||
case -1:
|
||||
os.Exit(5)
|
||||
default:
|
||||
os.Exit(ret)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
|
@ -125,7 +132,10 @@ func main() {
|
|||
if opts.Version {
|
||||
fmt.Printf("listen %s\n", VERSION)
|
||||
} else if err := validateArgs(opts, len(remaining)); err == nil {
|
||||
setup(opts, remaining)
|
||||
ret = setup(opts, remaining)
|
||||
if ret != 0 {
|
||||
panic(ret)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue