chore(deps): fsnotify instead of radovskyb/watcher

Ref #4326
diff --git a/go.mod b/go.mod
index 2de261d..ae87e87 100644
--- a/go.mod
+++ b/go.mod
@@ -9,6 +9,7 @@
 	github.com/apache/camel-k/v2/pkg/kamelet/repository v0.0.0
 	github.com/container-tools/spectrum v0.6.19
 	github.com/evanphx/json-patch v5.6.0+incompatible
+	github.com/fsnotify/fsnotify v1.6.0
 	github.com/gertd/go-pluralize v0.2.1
 	github.com/go-logr/logr v1.2.4
 	github.com/google/go-containerregistry v0.15.2
@@ -26,7 +27,6 @@
 	github.com/prometheus/client_golang v1.15.1
 	github.com/prometheus/client_model v0.4.0
 	github.com/prometheus/common v0.44.0
-	github.com/radovskyb/watcher v1.0.7
 	github.com/redhat-developer/service-binding-operator v1.3.4
 	github.com/rs/xid v1.5.0
 	github.com/scylladb/go-set v1.0.2
@@ -90,7 +90,6 @@
 	github.com/docker/docker-credential-helpers v0.7.0 // indirect
 	github.com/emicklei/go-restful/v3 v3.9.0 // indirect
 	github.com/evanphx/json-patch/v5 v5.6.0 // indirect
-	github.com/fsnotify/fsnotify v1.6.0 // indirect
 	github.com/go-kit/log v0.2.1 // indirect
 	github.com/go-logfmt/logfmt v0.5.1 // indirect
 	github.com/go-logr/zapr v1.2.3 // indirect
diff --git a/go.sum b/go.sum
index b2e0bc1..e7846c5 100644
--- a/go.sum
+++ b/go.sum
@@ -608,8 +608,6 @@
 github.com/prometheus/statsd_exporter v0.21.0 h1:hA05Q5RFeIjgwKIYEdFd59xu5Wwaznf33yKI+pyX6T8=
 github.com/prometheus/statsd_exporter v0.21.0/go.mod h1:rbT83sZq2V+p73lHhPZfMc3MLCHmSHelCh9hSGYNLTQ=
 github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
-github.com/radovskyb/watcher v1.0.7 h1:AYePLih6dpmS32vlHfhCeli8127LzkIgwJGcwwe8tUE=
-github.com/radovskyb/watcher v1.0.7/go.mod h1:78okwvY5wPdzcb1UYnip1pvrZNIVEIh/Cm+ZuvsUYIg=
 github.com/redhat-developer/service-binding-operator v1.3.4 h1:ApCkGtXSKWCrRBQZCo/wRJ+XZWLe1EOnPjYtGcYSSMQ=
 github.com/redhat-developer/service-binding-operator v1.3.4/go.mod h1:mS/deuQ5m8rMnY9NbJ+0eTB0sC7Oy8SibiRnuyD++Bc=
 github.com/rickb777/date v1.13.0 h1:+8AmwLuY1d/rldzdqvqTEg7107bZ8clW37x4nsdG3Hs=
diff --git a/pkg/util/sync/file.go b/pkg/util/sync/file.go
index bddfed7..bb9aee2 100644
--- a/pkg/util/sync/file.go
+++ b/pkg/util/sync/file.go
@@ -20,38 +20,37 @@
 
 import (
 	"context"
-	"time"
 
-	"github.com/apache/camel-k/v2/pkg/util/log"
-	"github.com/radovskyb/watcher"
+	"github.com/fsnotify/fsnotify"
 )
 
 // File returns a channel that signals each time the content of the file changes.
 func File(ctx context.Context, path string) (<-chan bool, error) {
-	w := watcher.New()
-	if err := w.Add(path); err != nil {
+	watcher, err := fsnotify.NewWatcher()
+	if err != nil {
 		return nil, err
 	}
-	w.FilterOps(watcher.Write)
 
 	out := make(chan bool)
+
+	// Start listening for events.
 	go func() {
 		for {
 			select {
 			case <-ctx.Done():
 				return
-			case <-w.Event:
-				out <- true
+			case event := <-watcher.Events:
+				if event.Has(fsnotify.Write) {
+					out <- true
+				}
 			}
 		}
 	}()
 
-	go func() {
-		if err := w.Start(200 * time.Millisecond); err != nil {
-			log.Error(err, "Error while starting watcher")
-			close(out)
-		}
-	}()
+	err = watcher.Add(path)
+	if err != nil {
+		return nil, err
+	}
 
 	return out, nil
 }