Skip to content

Show HN: Execute a shell command each time a given file or directory changes

github.com/Dinduks
9 pointsdinduks7 comments
On HN

Comments

I'm sure I've seen a nicely crossplatform command-line tool for this, but I can't seem to find it. The closest (by support for non-poll APIs) seems to be 'simplefilewatcher'[1], but that's just a C++ library.

incron, inotify, filewatcher[2], puncher[3], guard[4] are a bunch of existing ones, but they're all either not entirely functional cross-platform, or require some faffing with dependencies to get working.

[1] https://code.google.com/p/simplefilewatcher/

[2] https://github.com/thomasfl/filewatcher

[3] http://rawsyntax.com/blog/puncher-the-simple-file-watcher-fo...

[4] https://github.com/guard/guard

I'm aware that it's beyond the scope of cel, but I'd use incron anyday for jobs like this.

A better approach surely would be to wrap inotify/osx fsevents

That's what incron does...

On Linux yes, it doesn't exist on osx though. My point was that the author could have written his tool as cross platform without relying on an 'ls' every 100ms, by using the platform tools availble

Inotify is specific to Linux, while CEL isn't OS dependent.

Except if you account for the fact that some other UNIX-like OS do not use bash as /bin/sh.

You could even say that using bash as /bin/sh "is specific to Linux."

How to fix: /#!\/bin\/bash/s/bash/sh/

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.