From e09673c4ad1c9888d3a8641bb104b10c575d7a3f Mon Sep 17 00:00:00 2001 From: crazywolf132 Date: Wed, 25 Sep 2024 09:42:41 +1000 Subject: [PATCH] fix: watcher now listens for terminal signals --- internal/watcher/watcher.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) mode change 100644 => 100755 internal/watcher/watcher.go diff --git a/internal/watcher/watcher.go b/internal/watcher/watcher.go old mode 100644 new mode 100755 index 49e3426..6dde355 --- a/internal/watcher/watcher.go +++ b/internal/watcher/watcher.go @@ -3,10 +3,11 @@ package watcher import ( "github.com/fsnotify/fsnotify" "os" + "os/signal" "path/filepath" "squish/internal/utils" - "squish/pkg/esbuild" + "syscall" ) type Watcher struct { @@ -64,6 +65,16 @@ func (w *Watcher) Watch() error { return err } + // Setup signal handling for graceful shutdown + signals := make(chan os.Signal, 1) + signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM) + + go func() { + <-signals + utils.Log("Received interrupt signal, shutting down watcher...") + close(done) + }() + utils.Log("Watching for changes in", w.srcDir) <-done return nil