add: prerelease do not change update.json

This commit is contained in:
windingwind 2023-07-28 20:20:37 +08:00
parent 3c780febc9
commit a5517736fa

View File

@ -22,6 +22,8 @@ const t = new Date();
const buildTime = dateFormat("YYYY-mm-dd HH:MM:SS", new Date());
const buildDir = "build";
const isPreRelease = version.includes("-");
function copyFileSync(source, target) {
var targetFile = target;
@ -81,7 +83,7 @@ function dateFormat(fmt, date) {
if (ret) {
fmt = fmt.replace(
ret[1],
ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"),
ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0")
);
}
}
@ -106,7 +108,7 @@ function renameLocaleFiles() {
if (localeSubFile.endsWith(".ftl")) {
renameSync(
path.join(localeSubDir, localeSubFile),
path.join(localeSubDir, `${config.addonRef}-${localeSubFile}`),
path.join(localeSubDir, `${config.addonRef}-${localeSubFile}`)
);
}
}
@ -124,7 +126,7 @@ function replaceString() {
const replaceTo = [author, description, homepage, version, buildTime];
replaceFrom.push(
...Object.keys(config).map((k) => new RegExp(`__${k}__`, "g")),
...Object.keys(config).map((k) => new RegExp(`__${k}__`, "g"))
);
replaceTo.push(...Object.values(config));
@ -135,13 +137,16 @@ function replaceString() {
`${buildDir}/addon/prefs.js`,
`${buildDir}/addon/manifest.json`,
`${buildDir}/addon/bootstrap.js`,
"update.json",
],
from: replaceFrom,
to: replaceTo,
countMatches: true,
};
if (!isPreRelease) {
optionsAddon.files.push("update.json");
}
const replaceResult = replaceInFileSync(optionsAddon);
const localeMessage = new Set();
@ -154,7 +159,7 @@ function replaceString() {
const prefixedLines = lines.map((line) => {
// https://regex101.com/r/lQ9x5p/1
const match = line.match(
/^(?<message>[a-zA-Z]\S*)([ ]*=[ ]*)(?<pattern>.*)$/m,
/^(?<message>[a-zA-Z]\S*)([ ]*=[ ]*)(?<pattern>.*)$/m
);
if (match) {
localeMessage.add(match.groups.message);
@ -175,7 +180,7 @@ function replaceString() {
if (localeMessage.has(match[2])) {
input = input.replace(
match[0],
`${match[1]}="${config.addonRef}-${match[2]}"`,
`${match[1]}="${config.addonRef}-${match[2]}"`
);
} else {
localeMessageMiss.add(match[2]);
@ -191,14 +196,14 @@ function replaceString() {
.filter((f) => f.hasChanged)
.map((f) => `${f.file} : ${f.numReplacements} / ${f.numMatches}`),
replaceResultFlt.filter((f) => f.hasChanged).map((f) => `${f.file} : OK`),
replaceResultXhtml.filter((f) => f.hasChanged).map((f) => `${f.file} : OK`),
replaceResultXhtml.filter((f) => f.hasChanged).map((f) => `${f.file} : OK`)
);
if (localeMessageMiss.size !== 0) {
console.warn(
`[Build] [Warn] Fluent message [${new Array(
...localeMessageMiss,
)}] do not exsit in addon's locale files.`,
...localeMessageMiss
)}] do not exsit in addon's locale files.`
);
}
}
@ -213,7 +218,7 @@ async function esbuild() {
target: "firefox102",
outfile: path.join(
buildDir,
`addon/chrome/content/scripts/${config.addonRef}.js`,
`addon/chrome/content/scripts/${config.addonRef}.js`
),
// Don't turn minify on
// minify: true,
@ -224,14 +229,20 @@ async function main() {
console.log(
`[Build] BUILD_DIR=${buildDir}, VERSION=${version}, BUILD_TIME=${buildTime}, ENV=${[
env.NODE_ENV,
]}`,
]}`
);
clearFolder(buildDir);
copyFolderRecursiveSync("addon", buildDir);
copyFileSync("update-template.json", "update.json");
if (isPreRelease) {
console.log(
"[Build] [Warn] Running in pre-release mode. update.json will not be replaced."
);
} else {
copyFileSync("update-template.json", "update.json");
}
await esbuild();
@ -251,12 +262,12 @@ async function main() {
path.join(buildDir, `${name}.xpi`),
{
ignoreBase: true,
},
}
);
console.log("[Build] Addon pack OK");
console.log(
`[Build] Finished in ${(new Date().getTime() - t.getTime()) / 1000} s.`,
`[Build] Finished in ${(new Date().getTime() - t.getTime()) / 1000} s.`
);
}