| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | #!/usr/bin/env nodeconst fs = require("fs");const path = require("path");const versionFile = path.join("build", "version.json");const indexFile = path.join("build", "index.html");const versionDate = (date) => date.toISOString().replace(".000", "");const commitHash = () => {  try {    return require("child_process")      .execSync("git rev-parse --short HEAD")      .toString()      .trim();  } catch {    return "none";  }};const commitDate = (hash) => {  try {    const unix = require("child_process")      .execSync(`git show -s --format=%ct ${hash}`)      .toString()      .trim();    const date = new Date(parseInt(unix) * 1000);    return versionDate(date);  } catch {    return versionDate(new Date());  }};const getFullVersion = () => {  const hash = commitHash();  return `${commitDate(hash)}-${hash}`;};const data = JSON.stringify(  {    version: getFullVersion(),  },  undefined,  2,);fs.writeFileSync(versionFile, data);// https://stackoverflow.com/a/14181136/8418fs.readFile(indexFile, "utf8", (error, data) => {  if (error) {    return console.error(error);  }  const result = data.replace(/{version}/g, getFullVersion());  fs.writeFile(indexFile, result, "utf8", (error) => {    if (error) {      return console.error(error);    }  });});
 |