Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

File-watcher library that simplifies responding to file changes while developing.

branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.md

Sherpa

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 execute 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.

Basic Usage

Create a file in the root of your project with the contents below; don't forget chmod +x .

#!/usr/bin/env node
/*jshint laxcomma:true strict:false*/
/*globals require*/
var sherpa = require("sherpa");

var backpack = {
      js    : function (filename) {
        sherpa.exec(filename, "grunt js");
      }
      ,less : function (filename) {
        sherpa.exec(filename, "grunt less");
      }
    };

sherpa("src", 300, function (filename, curr, prev) {
  if (+curr.mtime !== +prev.mtime) {
    try {
      backpack[/.*\.(.*)$/.exec(filename)[1]](filename);
    } catch (e) {
      sherpa.exec(filename + "\n But I don't know what to do with it. :-(");
    }
  }
});

Testing

I have started some simple tests using expresso. To run tests simply ensure that the npm modules are installed by executing npm install in the root directory. Then execute expresso in the root. Hopefully all tests should pass.

Something went wrong with that request. Please try again.