16 lines
608 B
JavaScript
16 lines
608 B
JavaScript
// Edits balance.json from the command line and keeps its compact layout.
|
|
// node tools/bal-edit.mjs path=value [path=value ...] e.g. gain=2.8 debt.premiumCoef=0.0008
|
|
import fs from "node:fs";
|
|
import { format } from "./cardfmt.mjs";
|
|
|
|
const p = new URL("../web/data/balance.json", import.meta.url);
|
|
const j = JSON.parse(fs.readFileSync(p, "utf8"));
|
|
for (const a of process.argv.slice(2)) {
|
|
const [path, val] = a.split("=");
|
|
const keys = path.split(".");
|
|
let o = j;
|
|
for (const k of keys.slice(0, -1)) o = o[k] ??= {};
|
|
o[keys.at(-1)] = JSON.parse(val);
|
|
}
|
|
fs.writeFileSync(p, `${format(j)}\n`);
|