fork https://github.com/synrc/fs

221V 5f4e5ad13d code formatting 3 years ago
c_src c7d9fe4b78 upd to v6.12 3 years ago
ebin c7d9fe4b78 upd to v6.12 3 years ago
include 5d8596e75d fs v 1.9 init 3 years ago
priv 5d8596e75d fs v 1.9 init 3 years ago
src 5f4e5ad13d code formatting 3 years ago
.gitignore c7d9fe4b78 upd to v6.12 3 years ago
LICENSE 5d8596e75d fs v 1.9 init 3 years ago
README.md c7d9fe4b78 upd to v6.12 3 years ago
rebar.config 5d8596e75d fs v 1.9 init 3 years ago

README.md

FS: Native Listener - https://github.com/synrc/fs v1.9 fork (upd to v6.12)

Backends

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.

Credits

  • Vladimir Kirillov
  • Maxim Sokhatsky

OM A HUM