fix(okr): drift-laas kommando-antall og haandhev rapport utenfor bundlen
This commit is contained in:
parent
099cabfba6
commit
d63438581d
4 changed files with 92 additions and 8 deletions
|
|
@ -20,7 +20,7 @@
|
|||
// Exit: 0 = rapport produsert · 1 = uventet feil (inkl. confinement-brudd)
|
||||
// 2 = bruksfeil (manglende/ukjent sti)
|
||||
|
||||
import { writeFileSync, renameSync, existsSync, statSync } from 'node:fs';
|
||||
import { writeFileSync, renameSync, existsSync, statSync, realpathSync } from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
|
|
@ -55,7 +55,25 @@ if (isMain) {
|
|||
try {
|
||||
const ut = byggRapport(bundleRoot);
|
||||
if (rapportFil) {
|
||||
writeAtomic(path.resolve(rapportFil), ut);
|
||||
// Haandhever loeftet i headeren: rapporten skal ALDRI havne i bundlen den
|
||||
// vurderer. En rapport i treet ville blitt klassifisert av neste kjoering
|
||||
// (selv-forurensning), og et loefte som bare staar i prosa er ikke et
|
||||
// loefte -- samme standard som tool-lista i commands/arkivklar.md.
|
||||
//
|
||||
// BEGGE sider maa realpath-es, ellers er sammenligningen verdiloes: paa
|
||||
// macOS er /var en symlenke til /private/var, saa en realpath-et rot mot
|
||||
// en bare resolvet maal-sti sammenligner to skrivemaater av samme sted og
|
||||
// slipper alt gjennom. Maalet finnes ikke ennaa, saa det er FORELDRE-
|
||||
// katalogen som realpath-es -- samme grep som writeConfined i
|
||||
// lib/innboks-write.mjs.
|
||||
const maalDir = realpathSync(path.dirname(path.resolve(rapportFil)));
|
||||
const maal = path.join(maalDir, path.basename(rapportFil));
|
||||
const rot = realpathSync(path.resolve(bundleRoot));
|
||||
if (maal === rot || maal.startsWith(rot + path.sep)) {
|
||||
process.stderr.write(`arkivklar: rapporten kan ikke skrives inne i bundlen som vurderes: ${rapportFil}\n`);
|
||||
process.exit(1);
|
||||
}
|
||||
writeAtomic(maal, ut);
|
||||
process.stdout.write(`Arkivklar: vurderingsgrunnlag skrevet til ${rapportFil}\n`);
|
||||
} else {
|
||||
process.stdout.write(ut);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue