var request = require('@root/request');
var _normalize = require('../_webi/normalize.js');
+var reInstallTpl = /\s*#?\s*{{ installer }}/;
+
var Releases = module.exports;
Releases.get = async function (pkgdir) {
var get;
});
};
+function padScript(txt) {
+ return txt.replace(/^/g, ' ');
+}
+
Releases.renderBash = function (
pkgdir,
rel,
return fs.promises
.readFile(path.join(pkgdir, 'install.sh'), 'utf8')
.then(function (installTxt) {
+ installTxt = padScript(installTxt);
var vers = rel.version.split('.');
var v = {
major: vers.shift() || '',
.then(function (tplTxt) {
return (
tplTxt
- .replace(/^#?WEBI_PKG=.*/m, "WEBI_PKG='" + pkg + '@' + ver + "'")
- .replace(/^#?WEBI_HOST=.*/m, "WEBI_HOST='" + baseurl + "'")
- .replace(/^#?WEBI_OS=.*/m, "WEBI_OS='" + (os || '') + "'")
- .replace(/^#?WEBI_ARCH=.*/m, "WEBI_ARCH='" + (arch || '') + "'")
- .replace(/^#?WEBI_TAG=.*/m, "WEBI_TAG='" + tag + "'")
.replace(
- /^#?WEBI_RELEASES=.*/m,
+ /^\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/' +
"'"
)
.replace(
- /^#?WEBI_CSV=.*/m,
+ /^\s*#?WEBI_CSV=.*/m,
"WEBI_CSV='" +
[
rel.version,
"'"
)
.replace(
- /^#?WEBI_VERSION=.*/m,
+ /^\s*#?WEBI_VERSION=.*/m,
'WEBI_VERSION=' + JSON.stringify(rel.version)
)
- .replace(/^#?WEBI_MAJOR=.*/m, 'WEBI_MAJOR=' + v.major)
- .replace(/^#?WEBI_MINOR=.*/m, 'WEBI_MINOR=' + v.minor)
- .replace(/^#?WEBI_PATCH=.*/m, 'WEBI_PATCH=' + v.patch)
- .replace(/^#?WEBI_BUILD=.*/m, 'WEBI_BUILD=' + v.build)
- .replace(/^#?WEBI_LTS=.*/m, 'WEBI_LTS=' + rel.lts)
- .replace(/^#?WEBI_CHANNEL=.*/m, 'WEBI_CHANNEL=' + rel.channel)
+ .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(
- /^#?WEBI_EXT=.*/m,
+ /^\s*#?WEBI_EXT=.*/m,
'WEBI_EXT=' + rel.ext.replace(/tar.*/, 'tar')
)
.replace(
- /^#?WEBI_FORMATS=.*/m,
+ /^\s*#?WEBI_FORMATS=.*/m,
"WEBI_FORMATS='" + formats.join(',') + "'"
)
.replace(
- /^#?WEBI_PKG_URL=.*/m,
+ /^\s*#?WEBI_PKG_URL=.*/m,
"WEBI_PKG_URL='" + rel.download + "'"
)
.replace(
- /^#?WEBI_PKG_FILE=.*/m,
+ /^\s*#?WEBI_PKG_FILE=.*/m,
"WEBI_PKG_FILE='" + pkgFile + "'"
)
// PKG details
- .replace(/^#?PKG_NAME=.*/m, "PKG_NAME='" + pkg + "'")
+ .replace(/^\s*#?PKG_NAME=.*/m, "PKG_NAME='" + pkg + "'")
.replace(
- /^#?PKG_OSES=.*/m,
+ /^\s*#?PKG_OSES=.*/m,
"PKG_OSES='" + ((rel && rel.oses) || []).join(',') + "'"
)
.replace(
- /^#?PKG_ARCHES=.*/m,
+ /^\s*#?PKG_ARCHES=.*/m,
"PKG_ARCHES='" + ((rel && rel.arches) || []).join(',') + "'"
)
.replace(
- /^#?PKG_FORMATS=.*/m,
+ /^\s*#?PKG_FORMATS=.*/m,
"PKG_FORMATS='" + ((rel && rel.formats) || []).join(',') + "'"
)
- .replace(/{{ installer }}/, installTxt)
+ .replace(reInstallTpl, '\n' + installTxt)
);
});
});
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(/[+\-].*/, ''),
+ patch: vers.join('.').replace(/[+\-].*$/, ''),
build: vers
.join('.')
- .replace(/[^+\-]*/, '')
+ .replace(/[^+\-]*()/, '')
.replace(/^-/, '')
};
+ */
return fs.promises
.readFile(path.join(__dirname, 'template.bat'), 'utf8')
.then(function (tplTxt) {
/^(REM )?WEBI_PKG=.*/im,
"WEBI_PKG='" + pkg + '@' + ver + "'"
)
- .replace(/{{ installer }}/, installTxt);
+ .replace(reInstallTpl, '\n' + installTxt);
});
});
};
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(/[+\-].*/, ''),
+ patch: vers.join('.').replace(/[+\-].*$/, ''),
build: vers
.join('.')
- .replace(/[^+\-]*/, '')
+ .replace(/[^+\-]*()/, '')
.replace(/^-/, '')
};
+ */
return fs.promises
.readFile(path.join(__dirname, 'template.ps1'), 'utf8')
.then(function (tplTxt) {
/^(#)?\$Env:WEBI_PKG_FILE\s*=.*/im,
"$Env:WEBI_PKG_FILE = '" + rel.name + "'"
)
- .replace(/{{ installer }}/, installTxt);
+ .replace(reInstallTpl, '\n' + installTxt);
});
});
};