Files
CipherTalk/scripts/generate-force-update-manifest.js
T
2026-04-01 23:41:45 +08:00

34 lines
1.0 KiB
JavaScript

const fs = require('fs')
const path = require('path')
const rootDir = path.resolve(__dirname, '..')
const releaseDir = path.join(rootDir, 'release')
const pkg = require(path.join(rootDir, 'package.json'))
const parseList = (value) => {
if (!value) return []
return String(value)
.split(',')
.map((item) => item.trim())
.filter(Boolean)
}
const manifest = {
schemaVersion: 1,
latestVersion: pkg.version,
minimumSupportedVersion: process.env.FORCE_UPDATE_MIN_VERSION || undefined,
blockedVersions: parseList(process.env.FORCE_UPDATE_BLOCKED_VERSIONS),
title: process.env.FORCE_UPDATE_TITLE || '',
message: process.env.FORCE_UPDATE_MESSAGE || '',
releaseNotes: process.env.FORCE_UPDATE_RELEASE_NOTES || '',
publishedAt: new Date().toISOString()
}
if (!fs.existsSync(releaseDir)) {
fs.mkdirSync(releaseDir, { recursive: true })
}
const outputPath = path.join(releaseDir, 'force-update.json')
fs.writeFileSync(outputPath, `${JSON.stringify(manifest, null, 2)}\n`, 'utf8')
console.log(`✅ force-update.json 已生成: ${outputPath}`)