in plugins/internal/plugin/deletion_watcher.go [15:39]
func WatchForDeletion(file string) (*DeletionWatcher, error) {
// Create a new filesystem watcher
fsWatcher, err := fsnotify.NewWatcher()
if err != nil {
return nil, err
}
// Add a watch for the specified file
err = fsWatcher.Add(file)
if err != nil {
return nil, err
}
// Wrap the filesystem watcher in a deletion watcher
deletionWatcher := &DeletionWatcher{
watcher: fsWatcher,
Deleted: make(chan struct{}, 1),
Errors: make(chan error, 1),
}
// Start the watcher goroutine
go deletionWatcher.watch()
return deletionWatcher, nil
}