Sentry
Sentry is a simple node tool to watch for file changes (using a path, wildcards, or regexes) and execute a function or shell command. It's like a watchr or guard for node.
Installation
$ npm install sentry
Example
sentry = require 'sentry' # Watch changes in file.js sentrywatch 'file.js' consolelog "A change has been made in " # Watch changes on any file ending in .coffee one directory deep sentrywatch 'fld/*.coffee'-> # Watch changes recursively on any files sentrywatch 'fld/**/*'-> # Watch files recursively that match a regex sentrywatchRegExp 'fld/'/regex/-> # If you pass a string instead of a function it'll execute that child process sentrywatch 'file.coffee''coffee -c'
API
Sentry comes with two methods watch
and watchRegExp
.
sentry.watch(filePath, [task], callback)
Optionally you may pass a task which will send (err, stdout, stderr)
as the arguments to the callback
sentrywatch 'file.js''coffee -c'
Or simply just a callback and Sentry will pass the filename to the callback
sentrywatch 'file.js'
Feel free to use wildcards with extensions
# Find all files one directory deep sentrywatch '/folder/*'-> # Find all files one directory deep ending in .coffee sentrywatch '/folder/*.coffee'-> # Find all files recursively sentrywatch '/folder/**/*'-> # Find all files recursively ending in .txt sentrywatch '/folder/**/*.txt'->
sentry.watchRegExp(root, regex, [task], callback)
Just like sentry.watch but instead you must pass a root directory and regular expression to match files against.
# Find all files in this folder that end in .coffee sentrywatchRegExp ''/\.coffee$/-> # Find all files in the adjacent 'test' folder that begin with test and end in .coffee sentrywatchRegExp '../tests/'/^test_,.coffee$/->
To run tests
Sentry uses Jasmine-node for testing. Simply run the jasmine-node command with the coffeescript flag
jasmine-node spec --coffee