#!/usr/bin/env node /** * AI代码检查用户信息管理脚本 * * 功能:获取当前日期和用户名称,保存到me.config.json供AI检查步骤使用 * * @author AI助手 * @version 1.0.0 * @since 2026-01-13 */ const fs = require('fs'); const path = require('path'); const readline = require('readline'); const configPath = path.join(__dirname, '..', 'me.config.json'); // 获取当前日期(YYYY-MM-DD格式) function getCurrentDate() { const now = new Date(); const year = now.getFullYear(); const month = String(now.getMonth() + 1).padStart(2, '0'); const day = String(now.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } // 读取现有配置 function readConfig() { try { if (!fs.existsSync(configPath)) { return null; } return JSON.parse(fs.readFileSync(configPath, 'utf-8')); } catch (error) { console.error('❌ 读取配置文件失败:', error); return null; } } // 保存配置 function saveConfig(config) { try { fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf-8'); console.log('✅ 配置已保存'); } catch (error) { console.error('❌ 保存配置失败:', error); throw error; } } // 提示用户输入名称 function promptUserName() { const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); return new Promise((resolve) => { rl.question('👤 请输入您的名称或昵称: ', (name) => { rl.close(); resolve(name.trim()); }); }); } // 主执行逻辑 async function main() { console.log('🚀 AI代码检查 - 用户信息设置'); const currentDate = getCurrentDate(); console.log('📅 当前日期:', currentDate); const existingConfig = readConfig(); // 如果配置存在且日期匹配,直接返回 if (existingConfig && existingConfig.date === currentDate) { console.log('✅ 配置已是最新,当前用户:', existingConfig.name); return existingConfig; } // 需要更新配置 console.log('🔄 需要更新用户信息...'); const userName = await promptUserName(); if (!userName) { console.error('❌ 用户名称不能为空'); process.exit(1); } const config = { date: currentDate, name: userName }; saveConfig(config); console.log('🎉 设置完成!', config); return config; } // 导出函数供其他脚本使用 function getConfig() { return readConfig(); } // 如果直接运行此脚本 if (require.main === module) { main().catch((error) => { console.error('❌ 脚本执行失败:', error); process.exit(1); }); } module.exports = { getConfig, getCurrentDate };