Spaces:
Paused
Paused
| const fs = require('fs'); // 保留 fs 以防万一其他地方用到 | |
| const path = require('path'); | |
| /** | |
| * 检查必要的环境变量是否已设置 | |
| * @returns {Object} 检查结果,包含是否通过和缺失的变量列表 | |
| */ | |
| function checkRequiredEnvVars() { | |
| // 定义应用启动绝对必要的核心环境变量列表 | |
| const requiredVars = [ | |
| 'API_KEYS' // 假设管理员密码是启动和基本操作所必需的 | |
| // 根据你的应用逻辑,如果还有其他绝对必需的变量,请加在这里 | |
| ]; | |
| // 如果启用了自动刷新,则检查 GitHub 相关配置是否完整 | |
| // 这些变量的值你已经在 Secrets 中设置了 | |
| if (process.env.ENABLE_AUTO_REFRESH === 'true') { | |
| requiredVars.push( | |
| 'GITHUB_TOKEN', | |
| 'GITHUB_OWNER', | |
| 'GITHUB_REPO', | |
| 'GITHUB_WORKFLOW_ID' | |
| // 'TRIGGER_WORKFLOW' - 这个通常可以有默认值或者不影响启动,除非你的代码强制需要它 | |
| ); | |
| // 注意:我们不检查 REGISTER_* 变量,因为它们更可能是 workflow 参数,而非应用启动的必需项。 | |
| } | |
| // 检查每个必要的环境变量是否在 process.env 中有定义 | |
| const missingVars = requiredVars.filter(varName => !process.env[varName]); | |
| return { | |
| passed: missingVars.length === 0, | |
| missingVars | |
| }; | |
| } | |
| /** | |
| * 执行环境检查,如果不符合要求则退出程序 | |
| */ | |
| function enforceEnvCheck() { | |
| console.log('正在检查环境配置...'); | |
| // 检查必要的环境变量是否在 process.env 中设置 (来自 Secrets) | |
| const { passed, missingVars } = checkRequiredEnvVars(); | |
| if (!passed) { | |
| console.error('\n错误: 缺少以下必要的环境变量:'); | |
| missingVars.forEach(varName => { | |
| console.error(` - ${varName}`); | |
| }); | |
| console.error('\n请在 Hugging Face Space Secrets 中设置这些变量后重试。\n'); | |
| process.exit(1); // 退出程序 | |
| } | |
| console.log('环境检查通过,继续启动程序...'); | |
| } | |
| module.exports = { | |
| checkRequiredEnvVars, | |
| enforceEnvCheck | |
| }; |