notebook/scripts/less-watch
Grant Nestor a9ee9ad0d2 Compile LESS on npm run build:watch and LESS file changes
vs. compiling only on LESS file changes
2016-08-15 13:16:07 -07:00

43 lines
1.2 KiB
JavaScript
Executable File

#!/usr/bin/env node
/**
Usage:
./scripts/less-watch [watchPath]
Example:
./scripts/less-watch ./notebook/static/notebook/less
**/
var less = require('less');
var fs = require('fs');
var path = require('path');
var child_process = require('child_process');
function printResults(err, stdout, stderr) {
if (err) return console.log(err);
if (stdout) console.log(stdout);
if (stderr) console.log(stderr);
}
function compileLESS() {
child_process.exec('lessc --include-path=notebook/static --verbose notebook/static/style/style.less notebook/static/style/style.min.css', printResults);
child_process.exec('lessc --include-path=notebook/static --verbose notebook/static/style/ipython.less notebook/static/style/ipython.min.css', printResults);
}
function watchDir(dir) {
var rootPath = path.join(__dirname, '..');
var watchPath = path.resolve(dir);
console.log('less-watch:', 'watching:', path.relative(rootPath, watchPath));
fs.watch(watchPath, {recursive: true}, function(event, file) {
if (file && /.+\.less$/.test(file)) {
console.log('less-watch:', 'modified:', file);
compileLESS();
}
});
}
compileLESS();
watchDir(process.argv[2]);