import { execSync } from "node:child_process" ;
import fs from "node:fs" ;
import path from "node:path" ;
import { fileURLToPath } from "node:url" ;
const rootDir = path.resolve(path.dirname(fileURLToPath(import .meta.url)), ".." );
const distDir = path.join(rootDir, "dist" );
const pkgPath = path.join(rootDir, "package.json" );
const readPackageVersion = () => {
try {
const raw = fs.readFileSync(pkgPath, "utf8" );
const parsed = JSON.parse(raw) as { version?: string };
return parsed.version ?? null ;
} catch {
return null ;
}
};
const resolveCommit = () => {
const envCommit = process.env.GIT_COMMIT?.trim() || process.env.GIT_SHA?.trim();
if (envCommit) {
return envCommit;
}
try {
return execSync("git rev-parse HEAD" , {
cwd: rootDir,
stdio: ["ignore" , "pipe" , "ignore" ],
})
.toString()
.trim();
} catch {
return null ;
}
};
const version = readPackageVersion();
const commit = resolveCommit();
const buildInfo = {
version,
commit,
builtAt: new Date().toISOString(),
};
fs.mkdirSync(distDir, { recursive: true });
fs.writeFileSync(path.join(distDir, "build-info.json" ), `${JSON.stringify(buildInfo, null , 2 )}\n`);
Messung V0.5 in Prozent C=99 H=97 G=97
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland