Files
shanxia2.0/web-admin/scripts/app-build-meta.ts
T

32 lines
882 B
TypeScript

// 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')
}