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