File-watcher library that simplifies responding to file changes while developing.
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Watch files in a directory for changes/updates.

I know that this might not be the best way to do this but it seems to work for right now so I am putting it out there. Simply create a file to execte in the terminal (example below) and point it at the directory you would like to watch. When a file is changed the callback you pass in will execute and you can do whatever you want with the change.

I have started using this in conjunction with Grunt.js so I don't have to grunt with each change to my files while developing.

Example file

#!/usr/bin/env node
/*jshint strict:false*/
/*globals require*/
var exec = require('child_process').exec
  , sherpa = require("sherpa")

function notify (filename, command) {
  puts(null, "\nChange made to: " + filename);

  command && exec(command, puts);

sherpa("src", 300, function (filename, curr, prev) {
  if (+curr.mtime !== +prev.mtime) {
    switch (/.*\.(.*)$/.exec(filename)[1]) {
      case "js":
        notify(filename, "grunt js");
      case "less":
        notify(filename, "grunt less");
        notify(filename + " but no action was taken");