A cross-platform file activity monitor
Haskell
Latest commit 1bc0798 May 17, 2016 @jhickner Merge pull request #13 from astynax/master
New option parsing, support of multiple paths
Failed to load latest commit information.
.gitignore Use filepath 1.4.* Sep 7, 2015
Hobbes.hs
LICENSE
README.md
Setup.hs added cabal file Oct 15, 2012
hobbes.cabal
stack.yaml bumps the version of the Stackage snapshot May 17, 2016

README.md

Hobbes

Circle CI

Hobbes is a small UNIX-style file watcher for OSX windows, linux and OSX (thanks @cgag), written after experiencing some OSX bugs with my usual standby guard. The filenames of modified files are simply echoed to stdout, one file per line. You take it from there.

Complex tasks can be accomplished by combining hobbes with other commands such as xargs, for example:

# automatic GHC recompile when your source files change
hobbes "*.hs" | xargs -n1 ghc --make

xargs -n1 <command> means essentially "run the command on each word of input". So ghc --make is run on each modified file.

Another example: I have a script called kick that reloads the current tab in Chrome and then refocuses iTerm. With this command to hobbes I get automatic browser reloading on every save. Script here if you're interested.

hobbes "*.html" | xargs -n1 kick
# running multiple commands when files change
hobbes "*.elm" | xargs -n1 sh -c 'cmd1; cmd2; ...'

Installation with Stack

Hobbes can be installed from sources with stack:

$ git clone https://github.com/jhickner/hobbes.git
$ cd hobbes
$ stack install

Thanks

Hobbes is a very small wrapper around fsnotify.