seedproject-web/scripts/configure.mjs

39 lines
1.1 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
/**
* configure.mjs stamp site.config.json (the single source of identity) into
* every engine config. Run after editing site.config.json:
*
* node scripts/configure.mjs
*
* Writes:
* - app/src/config/site.json (Astro theme reads this)
*/
import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..");
const read = (p) => JSON.parse(readFileSync(resolve(root, p), "utf8"));
const write = (p, obj) => {
const full = resolve(root, p);
mkdirSync(dirname(full), { recursive: true });
writeFileSync(full, JSON.stringify(obj, null, 2) + "\n");
console.log(" wrote", p);
};
const site = read("site.config.json");
console.log(`Configuring site: ${site.name} <${site.url}>`);
// 1) Astro theme
write("app/src/config/site.json", {
name: site.name,
url: site.url,
description: site.description,
tagline: site.tagline,
language: site.language,
author: site.author,
social: site.social,
});
console.log("Done. Rebuild the site: (cd app && npm run build)");