begin support for batch templating
[webi-installers/.git] / _webi / test.js
index 552a5faa8a9d3b9c4c726e2f633b1e8ff40ba85e..59c1e19907adedfb527aecdc83d943499d5ebd95 100755 (executable)
@@ -4,10 +4,18 @@
 // Print help if there's no pkgdir argument
 //
 var usage = [
-  'Usage: node _webi/test.js <path-to-package>',
-  'Example: node _webi/test.js ./node/'
+  'Usage: node _webi/test.js --debug <path-to-package>',
+  'Example: node _webi/test.js --debug ./node/'
 ].join('\n');
 
+var count = 3;
+var debug = false;
+
+if (/\b-?-debug?\b/.test(process.argv.join(' '))) {
+  count += 1;
+  debug = true;
+}
+
 if (3 !== process.argv.length) {
   console.error(usage);
   process.exit(1);
@@ -85,23 +93,43 @@ Releases.get(path.join(process.cwd(), pkgdir)).then(function (all) {
   console.info(rel);
   console.info('');
 
-  return Releases.renderBash(pkgdir, rel, {
-    baseurl: 'https://webinstall.dev',
-    pkg: pkgname,
-    tag: pkgtag || '',
-    ver: '',
-    os: osrel,
-    arch,
-    formats: formats
-  }).then(function (bashTxt) {
+  return Promise.all([
+    Releases.renderBash(pkgdir, rel, {
+      baseurl: 'https://webinstall.dev',
+      pkg: pkgname,
+      tag: pkgtag || '',
+      ver: '',
+      os: osrel,
+      arch,
+      formats: formats
+    }).catch(function () {}),
+    Releases.renderBatch(pkgdir, rel, {
+      baseurl: 'https://webinstall.dev',
+      pkg: pkgname,
+      tag: pkgtag || '',
+      ver: '',
+      os: osrel,
+      arch,
+      formats: formats
+    }).catch(function () {})
+  ]).then(function (scripts) {
+    var bashTxt = scripts[0];
+    var batTxt = scripts[1];
     var bashFile = 'install-' + pkgname + '.sh';
     var batFile = 'install-' + pkgname + '.bat';
 
-    bashTxt = bashTxt.replace(/#set -x/g, 'set -x');
-    fs.writeFileSync(bashFile, bashTxt, 'utf-8');
+    if (debug) {
+      bashTxt = (bashTxt || 'echo ERROR').replace(/#set -x/g, 'set -x');
+      batTxt = (batTxt || 'echo ERROR').replace(
+        /REM REM todo debug/g,
+        'REM todo debug'
+      );
+    }
     console.info('Has the necessary files?');
-    console.info('\tNEEDS MANUAL TEST: %s', bashFile);
-    console.info('\t(todo: ' + batFile + ')');
+    fs.writeFileSync(bashFile, bashTxt, 'utf-8');
+    console.info('\tNEEDS MANUAL TEST: bash %s', bashFile);
+    fs.writeFileSync(batFile, batTxt, 'utf-8');
+    console.info('\tNEEDS MANUAL TEST: cmd.exe %s', batFile);
     console.info('');
   });
 });