scripts/copy-assets.js (32 lines of code) (raw):
import path from "node:path";
import fs from "node:fs";
import child_process from "node:child_process";
let branch = "";
let hash = "";
let build = "DEV";
try {
branch = child_process.execSync(`git rev-parse --abbrev-ref HEAD`).toString("utf-8").trim();
hash = child_process.execSync(`git rev-parse --short HEAD`).toString("utf-8").trim();
build = `<a rel="noopener noreferrer" target="_blank" href="https://github.com/Azure/static-web-apps-cli/commit/${hash}">${branch}+sha.${hash}</a>`;
} catch {}
// main
(function () {
// prettier-ignore
const files = [
path.join("src", "public", "auth.html"),
path.join("src", "public", "401.html"),
path.join("src", "public", "404.html"),
path.join("src", "public", "403.html"),
path.join("src", "cli", "bin.js"),
path.join("schema", "swa-cli.config.schema.json"),
];
files.forEach((file) => {
let distFile = path.join("dist", file.replace("src", ""));
if (!fs.existsSync(path.dirname(distFile))) {
fs.mkdirSync(path.dirname(distFile), { recursive: true });
}
fs.copyFileSync(file, distFile);
let content = fs.readFileSync(distFile).toString("utf-8");
content = content.replace(/#STAMP#/, build);
fs.writeFileSync(distFile, content);
console.log(`Copied ${file} to ${distFile}`);
});
})();