Gracefully handle SIGINT

This commit is contained in:
2019-07-17 21:49:51 -04:00
parent dc954bc85b
commit 1362aae61a
3 changed files with 35 additions and 10 deletions

16
cli.go
View File

@@ -6,10 +6,14 @@ import (
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"os"
"os/signal"
"sync"
"syscall"
"time"
)
func globalInit() {
//TODO cmdline flag
logrus.SetLevel(logrus.TraceLevel)
}
@@ -66,14 +70,13 @@ func main() {
beemChan: make(chan string, transfers),
beemCommand: parseCommand(cmdString),
inactiveDelay: inactiveDelay,
globalWg: &sync.WaitGroup{},
}
beemer.initTempDir()
beemer.watcher, _ = fsnotify.NewWatcher()
defer beemer.dispose()
go beemer.handleWatcherEvents()
beemer.initWatchDir(watchDir)
@@ -82,10 +85,13 @@ func main() {
go beemer.work()
}
//TODO gracefully handle SIGINT
done := make(chan bool)
<-done
sigChan := make(chan os.Signal, 1)
signal.Notify(sigChan, syscall.SIGINT)
defer beemer.dispose()
<-sigChan
logrus.Info("Received SIGINT")
return nil
}