From baad47e981111afc4c358a94a0a360ab274b2b13 Mon Sep 17 00:00:00 2001 From: Bryson Steck Date: Fri, 11 Jul 2025 12:32:31 -0600 Subject: [PATCH] set up return codes --- listen.go | 5 ++++- main.go | 20 +++++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/listen.go b/listen.go index cae78d4..0be0b40 100644 --- a/listen.go +++ b/listen.go @@ -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 } diff --git a/main.go b/main.go index f35ee45..80262c2 100644 --- a/main.go +++ b/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) + } } }