#!/usr/bin/env node | |
require('../global'); | |
if (process.argv.length < 3) { | |
console.log('ShellJS: missing argument (script name)'); | |
console.log(); | |
process.exit(1); | |
} | |
var args, | |
scriptName = process.argv[2]; | |
env['NODE_PATH'] = __dirname + '/../..'; | |
if (!scriptName.match(/\.js/) && !scriptName.match(/\.coffee/)) { | |
if (test('-f', scriptName + '.js')) | |
scriptName += '.js'; | |
if (test('-f', scriptName + '.coffee')) | |
scriptName += '.coffee'; | |
} | |
if (!test('-f', scriptName)) { | |
console.log('ShellJS: script not found ('+scriptName+')'); | |
console.log(); | |
process.exit(1); | |
} | |
args = process.argv.slice(3); | |
for (var i = 0, l = args.length; i < l; i++) { | |
if (args[i][0] !== "-"){ | |
args[i] = '"' + args[i] + '"'; // fixes arguments with multiple words | |
} | |
} | |
if (scriptName.match(/\.coffee$/)) { | |
// | |
// CoffeeScript | |
// | |
if (which('coffee')) { | |
exec('coffee ' + scriptName + ' ' + args.join(' '), { async: true }); | |
} else { | |
console.log('ShellJS: CoffeeScript interpreter not found'); | |
console.log(); | |
process.exit(1); | |
} | |
} else { | |
// | |
// JavaScript | |
// | |
exec('node ' + scriptName + ' ' + args.join(' '), { async: true }); | |
} |