aboutsummaryrefslogtreecommitdiff
path: root/cordova/node_modules/shelljs/bin/shjs
blob: d239a7ad4b987ac9bb3c3fdb80c29c7c88171638 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!/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 });
}