Zum Inhalt

scripts/check-no-abs-paths.mjs

#!/usr/bin/env node
// check-no-abs-paths.mjs — CORE-META-14-Gate.
// Kanonische Quelle: _docs/templates/scripts/check-no-abs-paths.mjs — per Repo verbatim kopiert.
// Verbietet distinktive absolute Maintainer-Pfade in tracked Markdown-Dateien.
// Generische Doku-Beispiele (/Users/you/…, /Users/<name>/…) bleiben erlaubt.
import { execFileSync } from "node:child_process";

const PATTERN = String.raw`/Users/(Shared|johannes)`;

let hits = "";
try {
  hits = execFileSync("git", ["grep", "-I", "-n", "-E", PATTERN, "--", "*.md"], {
    encoding: "utf8",
  });
} catch (err) {
  // git grep: exit 1 = keine Treffer, alles andere = echter Fehler
  if (err.status === 1) {
    console.log("check-no-abs-paths: OK — keine absoluten Maintainer-Pfade in tracked *.md");
    process.exit(0);
  }
  console.error(`check-no-abs-paths: git grep schlug fehl: ${err.message}`);
  process.exit(2);
}

console.error("check-no-abs-paths: absolute Maintainer-Pfade in tracked *.md (CORE-META-14):");
console.error(hits.trimEnd());
console.error("→ Platzhalter nutzen: $VAULT/… für Vault-Pfade, ~/… für Home, repo-relative Pfade für Kommandos.");
process.exit(1);