UNPKG

requisite

Version:
71 lines (61 loc) 2.22 kB
'use strict'; var fs; use('sake-outdated'); use('sake-publish'); use('sake-version'); fs = require('fs'); task('build', 'compile src/*.coffee to lib/*.js', function () { return exec('node_modules/.bin/coffee -bcm -o lib/ src/'); }); task('watch', 'watch for changes and recompile project', function () { return exec('node_modules/.bin/coffee -bcmw -o lib/ src/'); }); task('test', 'run tests', function (options, done) { var grep, ref, test; if (!fs.existsSync('node_modules/unqualified')) { fs.symlinkSync('../fixtures/node_modules/unqualified', 'node_modules/unqualified'); } test = (ref = options.test) != null ? ref : 'test'; if (options.grep != null) { grep = "--grep " + options.grep; } else { grep = ''; } return exec("NODE_ENV=test node_modules/.bin/mocha --colors --reporter spec --timeout 5000 --compilers coffee:coffee-script/register --require source-map-support/register " + grep + " " + test, done); }); task('test:watch', 'watch for changes and recompile, re-run tests', function (options) { return invoke('build', function () { return invoke('test', function () { var runningTests; runningTests = false; return require('vigil').watch(__dirname, function (filename, stats) { var out; if (runningTests) { return; } if (/\.coffee$/.test(filename)) { if (/^test/.test(filename)) { out = '.test/'; options.test = ".test/" + path.basename(filename.split('.', 1)) + ".js"; } else if (/^src/.test(filename)) { out = path.dirname(filename).replace(/^src/, 'lib'); options.test = '.test'; } else { console.log('wut'); return; } runningTests = true; return exec("node_modules/.bin/coffee -bcm -o " + out + " " + filename, function () { console.log(new Date().toLocaleTimeString() + " - compiled " + filename); return invoke('test', function () { return runningTests = false; }); }); } }); }); }); }); task('gh-pages', 'Publish github page', function () { return require('brief').update(); });