Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Run a command when a file add/update event occurs
CoffeeScript Shell JavaScript Ruby
branch: master

Merge pull request #8 from aexmachina/minimatch-dot

Use minimatch `dot` option so that changes in directories that start with a dot don't cause a rebuild
latest commit 6de66383d5
@quackingduck authored
Failed to load latest commit information.
bin
examples worldwide
lib Use minimatch `dot` option so that changes in directories that start …
src
test big cleanup of `wach` will all the stuff I fixed for `wachs`
.gitignore Depend on wachdir, Upgrade CS, don't use path.existSync
LICENSE license
Makefile replaced this with local shell scripts that are not project specific
README (minor) README watchdir full URL
package.json Added ability to `npm run build` to compile CoffeeScript

README

`8.`888b                 ,8' .8.           ,o888888o.    8 8888        8
 `8.`888b               ,8' .888.         8888     `88.  8 8888        8
  `8.`888b             ,8' :88888.     ,8 8888       `8. 8 8888        8
   `8.`888b     .b    ,8' . `88888.    88 8888           8 8888        8
    `8.`888b    88b  ,8' .8. `88888.   88 8888           8 8888        8
     `8.`888b .`888b,8' .8`8. `88888.  88 8888           8 8888        8
      `8.`888b8.`8888' .8' `8. `88888. 88 8888           8 8888888888888
       `8.`888`8.`88' .8'   `8. `88888.`8 8888       .8' 8 8888        8
        `8.`8' `8,`' .888888888. `88888.  8888     ,88'  8 8888        8
         `8.`   `8' .8'       `8. `88888.  `8888888P'    8 8888        8


"watch changes"

  Watch for changes to files within the current directory and run a command
  when they occur.

  Wach is really fast, the command is run as soon as the file changes, no
  polling delay.

  Comes with two executables: `wach` and `wachs`.

  The `wach` utility will run any command (or inline shell script) whenever
  files in the current directory are updated.

  The `wachs` (there's an "s" on the end) utility does the same thing but for
  commands that launch a long running process like a web server. It'll kill
  the current process and launch a new one.

Requirements

  Only runs on OS X >=10.7 (Lion and up)

Install

  npm install wach

Examples

  # Run `make` every time a file in the current directory is updated/added
  wach make

  # Compile and run on every change
  wach "gcc hello.c && ./a.out"

  # Only watch for changes to coffee files, compile the one that changed
  wach -o *.coffee, coffee -c {}

  # Run the tests every time a ruby file changes
  TEST_DIR=generators wach -o **/*.rb, bundle exec rake test

  # Restart a node app any time a js file changes
  wachs -o *.js, node server.js

Node API

  wach = require('wach');
  wach('.', function(path) {
    return console.log("something happened to " + path + "!");
  })

Contributing

  Patches welcome. Especially if you'd like to re-write this in plain
  JavaScript. Just fork and make a pull request

Other similar projects:

  Patrick Mueller's wr
  https://github.com/pmuellr/wr

  steakout
  http://michael-mccracken.net/software/stakeout.tgz

  steakout.rb
  http://www.pragmaticautomation.com/cgi-bin/pragauto.cgi/Monitor/StakingOutFileChanges.rdoc

  the --watch flag for coffeescript
  http://jashkenas.github.com/coffee-script/#usage

  unix watch
  http://en.wikipedia.org/wiki/Watch_(Unix)

  TJ Holowaychuk's watch
  https://github.com/visionmedia/watch

  Isaac Z. Schlueter's node-supervisor
  https://github.com/isaacs/node-supervisor

  David Trejo's run.js
  https://github.com/DTrejo/run.js

  Gabriel Gironda's kqfm
  https://github.com/gabrielg/kqfm

  Mark Bao's watchdir
  https://github.com/markbao/watchdir
Something went wrong with that request. Please try again.