main.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. if (process.argv.length < 4) {
  2. console.error('Not enough arguments');
  3. process.exit(1);
  4. }
  5. const programs = require('./deploy.json').programs;
  6. let program = null;
  7. programs.forEach(elt => {
  8. if (elt.name === process.argv[2]) {
  9. program = elt;
  10. return;
  11. }
  12. });
  13. if (program === null) {
  14. console.error(process.argv[2], 'not found');
  15. process.exit(2);
  16. }
  17. if (program.script[process.argv[3]] === undefined) {
  18. console.error(process.argv[2], 'script not found');
  19. process.exit(3);
  20. }
  21. const cmd = program.script[process.argv[3]].split(' ');
  22. let argv = [];
  23. argv.push(process.argv[0]);
  24. argv.push(process.argv[1].replace('main.js', cmd[1]));
  25. let longParam = false;
  26. let param = '';
  27. for (let i = 2; i < cmd.length; i++) {
  28. if (longParam) {
  29. param += ' ' + cmd[i];
  30. if (cmd[i][cmd[i].length - 1] === '"') {
  31. argv.push(param.replace(/^"+|"+$/g, ''));
  32. param = '';
  33. longParam = false;
  34. }
  35. } else if (cmd[i][0] === '"') {
  36. longParam = true;
  37. param = cmd[i];
  38. } else {
  39. argv.push(cmd[i]);
  40. }
  41. }
  42. process.argv = argv;
  43. require('./' + cmd[1]);