File size: 2,029 Bytes
d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 dc70e52 d25ffd1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
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
}; |