snockets-cli
Version:
Snockets command-line tool.
62 lines (53 loc) • 1.73 kB
JavaScript
;
var Snockets, commander, fs, log, processCli, writeDepFile;
require('source-map-support').install();
Snockets = require('snockets');
fs = require('fs');
commander = require('commander');
log = require('yadsil')('snockets');
processCli = function() {
commander.usage('<in> [options]').option('--minify', 'minify output with uglifyJS').option('-o, --output <file>', 'output the result in a file').option('--dep-file <file>', 'generate a Makefile-compatible dependency file').option('--color', 'force color display out of a TTY').parse(process.argv);
log.color(commander.color);
if (commander.args.length < 1) {
log.fatal(2, 'no enough file arguments');
}
if (commander.args.length > 1) {
log.fatal(2, 'too many file arguments');
}
return commander;
};
writeDepFile = function(snockets, sourcePath, depfile) {
var chain, deps;
chain = snockets.scan(sourcePath, {
async: false
}).getChain(sourcePath);
deps = "" + sourcePath + ": " + (chain.join(' '));
return fs.writeFileSync(depfile, deps);
};
module.exports = function() {
var ex, js, snockets, sourcePath, targetPath;
commander = processCli();
sourcePath = commander.args[0];
targetPath = commander.output;
try {
snockets = new Snockets();
if (commander.depFile != null) {
writeDepFile(snockets, sourcePath, commander.depFile);
}
js = snockets.getConcatenation(sourcePath, {
async: false,
minify: commander.minify
});
if (targetPath != null) {
fs.writeFileSync(targetPath, js);
return;
}
return process.stdout.write(js);
} catch (_error) {
ex = _error;
return log.fatal(1, ex.message);
}
};
/*
//@ sourceMappingURL=snockets-cli.js.map
*/