Acrylic cards and topbar over a blurred background, country flags, ISP and OS icons, per-node version tags, a build info footer and an admin versions tab. Overview cards drop the sparkline and widen the hover area.
26 lines
1.1 KiB
JavaScript
26 lines
1.1 KiB
JavaScript
import { execSync } from 'node:child_process'
|
||
import { readFileSync } from 'node:fs'
|
||
import { fileURLToPath } from 'node:url'
|
||
|
||
/**
|
||
* 前端自己的构建信息:版本取自 web/package.json,tag 和提交取自 git(环境变量 MONITOR_TAG / MONITOR_COMMIT 优先,CI 里没有 git 历史时用),
|
||
* 构建时间是这次构建的时刻。开发服务器里 tag 是「dev」,免得每次刷新都变。
|
||
*/
|
||
function git(args) {
|
||
try {
|
||
return execSync(`git ${args}`, { cwd: fileURLToPath(new URL('..', import.meta.url)), stdio: ['ignore', 'pipe', 'ignore'] }).toString().trim()
|
||
} catch {
|
||
return ''
|
||
}
|
||
}
|
||
|
||
export function buildDefines(dev) {
|
||
const version = JSON.parse(readFileSync(new URL('./package.json', import.meta.url), 'utf8')).version
|
||
return {
|
||
__APP_VERSION__: JSON.stringify(version),
|
||
__APP_TAG__: JSON.stringify(dev ? 'dev' : (process.env.MONITOR_TAG || git('describe --tags --always --dirty'))),
|
||
__APP_COMMIT__: JSON.stringify(dev ? '' : (process.env.MONITOR_COMMIT || git('rev-parse --short=10 HEAD'))),
|
||
__APP_BUILT_AT__: JSON.stringify(dev ? '' : (process.env.MONITOR_BUILT_AT || new Date().toISOString())),
|
||
}
|
||
}
|