| #!/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 }); |
| } |