0412Xu commited on
Commit
d25ffd1
·
verified ·
1 Parent(s): dc70e52

Update src/utils/envChecker.js

Browse files
Files changed (1) hide show
  1. src/utils/envChecker.js +17 -33
src/utils/envChecker.js CHANGED
@@ -1,37 +1,31 @@
1
- const fs = require('fs');
2
  const path = require('path');
3
 
4
- /**
5
- * 检查 .env 文件是否存在
6
- * @returns {boolean} 文件是否存在
7
- */
8
- function checkEnvFileExists() {
9
- const envPath = path.resolve(process.cwd(), '.env');
10
- return fs.existsSync(envPath);
11
- }
12
-
13
  /**
14
  * 检查必要的环境变量是否已设置
15
  * @returns {Object} 检查结果,包含是否通过和缺失的变量列表
16
  */
17
  function checkRequiredEnvVars() {
18
- // 定义必要的环境变量列表
19
  const requiredVars = [
20
- 'API_KEYS', // API Keys 配置
 
21
  ];
22
 
23
- // 如果启用了自动刷新,则需要检查相关配置
 
24
  if (process.env.ENABLE_AUTO_REFRESH === 'true') {
25
  requiredVars.push(
26
  'GITHUB_TOKEN',
27
  'GITHUB_OWNER',
28
  'GITHUB_REPO',
29
- 'GITHUB_WORKFLOW_ID',
30
- 'TRIGGER_WORKFLOW'
31
  );
 
32
  }
33
 
34
- // 检查每个必要的环境变量
35
  const missingVars = requiredVars.filter(varName => !process.env[varName]);
36
 
37
  return {
@@ -45,32 +39,22 @@ function checkRequiredEnvVars() {
45
  */
46
  function enforceEnvCheck() {
47
  console.log('正在检查环境配置...');
48
-
49
- // 检查 .env 文件是否存在
50
- const envFileExists = checkEnvFileExists();
51
- if (!envFileExists) {
52
- console.error('\n错误: 未找到 .env 文件!');
53
- console.error('请根据 .env.example 创建 .env 文件并配置必要的环境变量。');
54
- console.error('执行以下命令复制示例文件: cp .env.example .env,或执行npm run setup\n');
55
- process.exit(1); // 退出程序,状态码 1 表示错误
56
- }
57
-
58
- // 检查必要的环境变量
59
  const { passed, missingVars } = checkRequiredEnvVars();
60
  if (!passed) {
61
- console.error('\n错误: 以下必要的环境变量未在 .env 文件中设置:');
62
  missingVars.forEach(varName => {
63
  console.error(` - ${varName}`);
64
  });
65
- console.error('\n请在 .env 文件中配置这些变量后重新启动程序。\n');
66
- process.exit(1); // 退出程序,状态码 1 表示错误
67
  }
68
-
69
  console.log('环境检查通过,继续启动程序...');
70
  }
71
 
72
  module.exports = {
73
- checkEnvFileExists,
74
  checkRequiredEnvVars,
75
  enforceEnvCheck
76
- };
 
1
+ const fs = require('fs'); // 保留 fs 以防万一其他地方用到
2
  const path = require('path');
3
 
 
 
 
 
 
 
 
 
 
4
  /**
5
  * 检查必要的环境变量是否已设置
6
  * @returns {Object} 检查结果,包含是否通过和缺失的变量列表
7
  */
8
  function checkRequiredEnvVars() {
9
+ // 定义应用启动绝对必要的核心环境变量列表
10
  const requiredVars = [
11
+ 'API_KEYS' // 假设管理员密码是启动和基本操作所必需的
12
+ // 根据你的应用逻辑,如果还有其他绝对必需的变量,请加在这里
13
  ];
14
 
15
+ // 如果启用了自动刷新,则检查 GitHub 相关配置是否完整
16
+ // 这些变量的值你已经在 Secrets 中设置了
17
  if (process.env.ENABLE_AUTO_REFRESH === 'true') {
18
  requiredVars.push(
19
  'GITHUB_TOKEN',
20
  'GITHUB_OWNER',
21
  'GITHUB_REPO',
22
+ 'GITHUB_WORKFLOW_ID'
23
+ // 'TRIGGER_WORKFLOW' - 这个通常可以有默认值或者不影响启动,除非你的代码强制需要它
24
  );
25
+ // 注意:我们不检查 REGISTER_* 变量,因为它们更可能是 workflow 参数,而非应用启动的必需项。
26
  }
27
 
28
+ // 检查每个必要的环境变量是否在 process.env 中有定义
29
  const missingVars = requiredVars.filter(varName => !process.env[varName]);
30
 
31
  return {
 
39
  */
40
  function enforceEnvCheck() {
41
  console.log('正在检查环境配置...');
42
+
43
+ // 检查必要的环境变量是否在 process.env 中设置 (来自 Secrets)
 
 
 
 
 
 
 
 
 
44
  const { passed, missingVars } = checkRequiredEnvVars();
45
  if (!passed) {
46
+ console.error('\n错误: 缺少以下必要的环境变量:');
47
  missingVars.forEach(varName => {
48
  console.error(` - ${varName}`);
49
  });
50
+ console.error('\n请在 Hugging Face Space Secrets 中设置这些变量后重试。\n');
51
+ process.exit(1); // 退出程序
52
  }
53
+
54
  console.log('环境检查通过,继续启动程序...');
55
  }
56
 
57
  module.exports = {
 
58
  checkRequiredEnvVars,
59
  enforceEnvCheck
60
+ };