});
});
};
+
+Releases.renderBatch = function (
+ pkgdir,
+ rel,
+ { baseurl, pkg, tag, ver, os, arch, formats }
+) {
+ if (!Array.isArray(formats)) {
+ formats = [];
+ }
+ if (!tag) {
+ tag = '';
+ }
+ return fs.promises
+ .readFile(path.join(pkgdir, 'install.bat'), 'utf8')
+ .then(function (installTxt) {
+ var vers = rel.version.split('.');
+ var v = {
+ major: vers.shift() || '',
+ minor: vers.shift() || '',
+ patch: vers.join('.').replace(/[+\-].*/, ''),
+ build: vers
+ .join('.')
+ .replace(/[^+\-]*/, '')
+ .replace(/^-/, '')
+ };
+ return fs.promises
+ .readFile(path.join(__dirname, 'template.bat'), 'utf8')
+ .then(function (tplTxt) {
+ return tplTxt
+ .replace(/^(REM )?WEBI_PKG=.*/im, "WEBI_PKG='" + pkg + '@' + ver + "'")
+ .replace(/{{ installer }}/, installTxt);
+ });
+ });
+};
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';
if (debug) {
- bashTxt = bashTxt.replace(/#set -x/g, 'set -x');
+ bashTxt = (bashTxt || 'echo ERROR').replace(/#set -x/g, 'set -x');
+ batTxt = (batTxt || 'echo ERROR').replace(
+ /REM REM todo debug/g,
+ 'REM todo debug'
+ );
}
- fs.writeFileSync(bashFile, bashTxt, 'utf-8');
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('');
});
});