UNPKG

autocode

Version:

spec-driven code generator

60 lines (56 loc) 1.74 kB
// Generated by CoffeeScript 1.10.0 (function() { var path; path = require('path'); module.exports = function(opts) { var autocode, cwd, i, runCmd, scripts, spawn; autocode = this; spawn = require('cross-spawn'); this.build(opts); if (!this.config.scripts || !this.config.scripts.run) { return "\n" + ' DONE! '.bgGreen.white; } cwd = this.path; console.log("\nRUN:".bold); scripts = this.config.scripts; i = 0; runCmd = function() { var command, description, dir, proc; if (!scripts.run[i]) { console.log("\n" + ' DONE! '.bgGreen.white); return; } if (scripts.run[i].title && !scripts.run[i].command) { console.log(' RUN TITLE '.bgGreen.white + (' ' + scripts.run[i].title + ' ').bgWhite + " \n"); i++; runCmd(); return; } description = scripts.run[i].description || scripts.run[i]; command = scripts.run[i].command || scripts.run[i]; if (scripts.run[i].path) { if (scripts.run[i].path.match(/^\//)) { dir = scripts.run[i].path; } else { dir = cwd + "/" + scripts.run[i].path; } dir = path.normalize(dir); } else { dir = cwd; } console.log(' RUN SCRIPT '.bgGreen.white + (' ' + description + ' ').bgWhite + " \n" + command.gray); proc = spawn('bash', ['-c', command], { cwd: dir }); proc.on('close', function(err) { return runCmd(); }); proc.on('error', function(err) { return console.log("\n" + ' ERROR '.bgRed.white + (' ' + err.message + ' ').bgWhite); }); return i++; }; runCmd(); return 'Running...'; }; }).call(this);