// web-admin/scripts/app-build-meta.ts import fs from 'node:fs' import path from 'node:path' export type AppBuildMeta = { version: string buildId: string } export function readGitShort(run: () => string): string { try { const text = run().trim() return text || 'nogit' } catch { return 'nogit' } } export function createAppBuildMeta(version: string, nowMs: number, gitShort: string): AppBuildMeta { const hash = gitShort.trim() || 'nogit' return { version, buildId: `${hash}-${nowMs}` } } export function versionJsonText(meta: AppBuildMeta): string { return `${JSON.stringify({ version: meta.version, buildId: meta.buildId }, null, 2)}\n` } export function writeVersionJson(outDir: string, meta: AppBuildMeta): void { fs.mkdirSync(outDir, { recursive: true }) fs.writeFileSync(path.join(outDir, 'version.json'), versionJsonText(meta), 'utf8') }