+ return (
+ tplTxt
+ .replace(
+ /^\s*#?WEBI_PKG=.*/m,
+ "WEBI_PKG='" + pkg + '@' + ver + "'"
+ )
+ .replace(/^\s*#?WEBI_HOST=.*/m, "WEBI_HOST='" + baseurl + "'")
+ .replace(/^\s*#?WEBI_OS=.*/m, "WEBI_OS='" + (os || '') + "'")
+ .replace(
+ /^\s*#?WEBI_ARCH=.*/m,
+ "WEBI_ARCH='" + (arch || '') + "'"
+ )
+ .replace(/^\s*#?WEBI_TAG=.*/m, "WEBI_TAG='" + tag + "'")
+ .replace(
+ /^\s*#?WEBI_RELEASES=.*/m,
+ "WEBI_RELEASES='" +
+ baseurl +
+ '/api/releases/' +
+ pkg +
+ '@' +
+ tag +
+ '.tab?os=' +
+ rel.os +
+ '&arch=' +
+ rel.arch +
+ '&formats=' +
+ formats.join(',') +
+ '&pretty=true' +
+ "'"
+ )
+ .replace(
+ /^\s*#?WEBI_CSV=.*/m,
+ "WEBI_CSV='" +
+ [
+ rel.version,
+ rel.lts,
+ rel.channel,
+ rel.date,
+ rel.os,
+ rel.arch,
+ rel.ext,
+ '-',
+ rel.download,
+ rel.name,
+ rel.comment || ''
+ ]
+ .join(',')
+ .replace(/'/g, '') +
+ "'"
+ )
+ .replace(
+ /^\s*#?WEBI_VERSION=.*/m,
+ 'WEBI_VERSION=' + JSON.stringify(rel.version)
+ )
+ .replace(/^\s*#?WEBI_MAJOR=.*/m, 'WEBI_MAJOR=' + v.major)
+ .replace(/^\s*#?WEBI_MINOR=.*/m, 'WEBI_MINOR=' + v.minor)
+ .replace(/^\s*#?WEBI_PATCH=.*/m, 'WEBI_PATCH=' + v.patch)
+ .replace(/^\s*#?WEBI_BUILD=.*/m, 'WEBI_BUILD=' + v.build)
+ .replace(/^\s*#?WEBI_LTS=.*/m, 'WEBI_LTS=' + rel.lts)
+ .replace(/^\s*#?WEBI_CHANNEL=.*/m, 'WEBI_CHANNEL=' + rel.channel)
+ .replace(
+ /^\s*#?WEBI_EXT=.*/m,
+ 'WEBI_EXT=' + rel.ext.replace(/tar.*/, 'tar')
+ )
+ .replace(
+ /^\s*#?WEBI_FORMATS=.*/m,
+ "WEBI_FORMATS='" + formats.join(',') + "'"
+ )
+ .replace(
+ /^\s*#?WEBI_PKG_URL=.*/m,
+ "WEBI_PKG_URL='" + rel.download + "'"
+ )
+ .replace(
+ /^\s*#?WEBI_PKG_FILE=.*/m,
+ "WEBI_PKG_FILE='" + pkgFile + "'"
+ )
+ // PKG details
+ .replace(/^\s*#?PKG_NAME=.*/m, "PKG_NAME='" + pkg + "'")
+ .replace(
+ /^\s*#?PKG_OSES=.*/m,
+ "PKG_OSES='" + ((rel && rel.oses) || []).join(',') + "'"
+ )
+ .replace(
+ /^\s*#?PKG_ARCHES=.*/m,
+ "PKG_ARCHES='" + ((rel && rel.arches) || []).join(',') + "'"
+ )
+ .replace(
+ /^\s*#?PKG_FORMATS=.*/m,
+ "PKG_FORMATS='" + ((rel && rel.formats) || []).join(',') + "'"
+ )
+ .replace(reInstallTpl, '\n' + installTxt)
+ );
+ });
+ });
+};
+
+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) {
+ installTxt = padScript(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(reInstallTpl, '\n' + installTxt);
+ });
+ });
+};
+
+Releases.renderPowerShell = 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.ps1'), 'utf8')
+ .then(function (installTxt) {
+ installTxt = padScript(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.ps1'), 'utf8')
+ .then(function (tplTxt) {
+ var pkgver = pkg + '@' + ver;