📁 FS: Native Filesystem Listeners
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
c_src added initial bsd kqueue support. you need subscribe with callback an… Sep 24, 2015
include init May 10, 2014
priv Ship precompiled inotifywait.exe in priv Mar 8, 2015
src version 4.10 Oct 21, 2018
.gitignore version 4.10 Oct 21, 2018
.travis.yml version 4.10 Oct 21, 2018
LICENSE init May 10, 2014
README.md readme Apr 1, 2017
package.exs version 4.10 Oct 21, 2018
rebar.config version 4.10 Oct 21, 2018

README.md

FS Listener

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.

Hex.pm publication

MIX_EXS=package.exs mix hex.publish package

Credits

  • Vladimir Kirillov
  • Maxim Sokhatsky

OM A HUM