FS Listener
Backends
- Mac fsevent
- Linux inotify
- Windows inotify-win
NOTE: On Linux you need to install inotify-tools.
Subscribe to Notifications
> fs:start_link(fs_watcher, "/Users/5HT/synrc/fs"). % need to start the fs watcher
> fs:subscribe(fs_watcher). % the pid will receive events as messages
> flush().
Shell got {<0.47.0>,
{fs,file_event},
{"/Users/5HT/synrc/fs/src/README.md",[closed,modified]}}
List Events from Backend
> fs:known_events(fs_watcher). % returns events known by your backend
[mustscansubdirs,userdropped,kerneldropped,eventidswrapped,
historydone,rootchanged,mount,unmount,created,removed,
inodemetamod,renamed,modified,finderinfomod,changeowner,
xattrmod,isfile,isdir,issymlink,ownevent]
Sample Subscriber
> fs:start_looper(). % starts a sample process that logs events
=INFO REPORT==== 28-Aug-2013::19:36:26 ===
file_event: "/tank/proger/erlfsmon/src/4913" [closed,modified]
API compatibility
API is per default compatible to version before 1.10.
By application start, fs
will start fs watcher on specified per enviroment path
or
if enviroment is unsetted, than in CWD
.
That means you can still use it, like:
fs:subscribe()
If you do not want to use backwards_compatible mode, disable it by setting fs
enviroment:
{backwards_compatible, false}
This option will lead, that default fs watcher willn't be started.
Hex.pm publication
MIX_EXS=package.exs mix hex.publish package
Credits
- Vladimir Kirillov
- Maxim Sokhatsky
OM A HUM