From 6603c1a6e68fb47fe465f201a5d9b980cd2a9421 Mon Sep 17 00:00:00 2001 From: Zach Bloomquist Date: Tue, 12 Dec 2023 11:34:07 -0500 Subject: [PATCH] scripts: fix generate-config-doc, handle usage errors --- package.json | 1 + scripts/generate-config-doc.js | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index a62da547..a200514f 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "coverage": "run-s test:* && nyc --nycrc-path=test/.nycrc-report.json report", "dev": "cross-env NODE_ENV=development ts-node --project server/tsconfig.json server/index.ts start --dev", "format:prettier": "prettier --write \"**/*.*\"", + "generate:config:doc": "ts-node scripts/generate-config-doc.js", "lint:check-eslint": "eslint-config-prettier .eslintrc.cjs", "lint:eslint": "eslint . --report-unused-disable-directives --color", "lint:prettier": "prettier --list-different \"**/*.*\"", diff --git a/scripts/generate-config-doc.js b/scripts/generate-config-doc.js index 43e934f2..9978ebae 100644 --- a/scripts/generate-config-doc.js +++ b/scripts/generate-config-doc.js @@ -1,16 +1,16 @@ "use strict"; -// Usage: `node generate-config-doc.js DOC_REPO_PATH` +// Usage: `npm run generate:config:doc DOC_REPO_PATH` // // Example: // // ```sh -// node scripts/generate-config-doc.js ../thelounge.github.io/ +// npm run generate:config:doc ../thelounge.github.io/ // ``` const {readFileSync, writeFileSync} = require("fs"); const colors = require("chalk"); -const log = require("../server/log"); +const log = require("../server/log").default; const {join} = require("path"); const {spawnSync} = require("child_process"); @@ -20,8 +20,18 @@ function getGitUsername() { const configContent = readFileSync(join(__dirname, "..", "defaults", "config.js"), "utf8"); +const docRoot = process.argv[2]; + +if (!docRoot) { + log.error("Missing DOC_REPO_PATH. Pass the path to the cloned `thelounge.github.io` repo."); + process.exit(1); +} + const docPath = join(process.argv[2], "_includes", "config.js.md"); +/** @type {string[]} */ +const acc = []; + const extractedDoc = configContent .replace(/https:\/\/thelounge\.chat\/docs/g, "/docs") // make links relative .split("\n") @@ -37,7 +47,7 @@ const extractedDoc = configContent } return acc; - }, []) + }, acc) .join("\n"); const infoBlockHeader = `