Add an inotify watcher utility using channels; use it.
Add an inotify watcher utility using channels; use it.

The interface of inotify/inutil.Watcher more resembles
golang.org/x/exp/inotify; with it using channels instead of repeated calls
to Read().

In my use-case, this is useful because it allows implementing a "read"
(select, really) that doesn't block Close(); which is required to handle
the TERM signal correctly.

LukeShu/periwinkle,LukeShu/periwinkle,LukeShu/periwinkle,LukeShu/periwinkle