mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 21:30:17 +08:00
添加Claude和Codex环境变量检查 (#242)
* feat(env): add environment variable conflict detection and management 实现了系统环境变量冲突检测与管理功能: 核心功能: - 自动检测会影响 Claude/Codex 的系统环境变量 - 支持 Windows 注册表和 Unix shell 配置文件检测 - 提供可视化的环境变量冲突警告横幅 - 支持批量选择和删除环境变量 - 删除前自动备份,支持后续恢复 技术实现: - Rust 后端: 跨平台环境变量检测与管理 - React 前端: EnvWarningBanner 组件交互界面 - 国际化支持: 中英文界面 - 类型安全: 完整的 TypeScript 类型定义 * refactor(env): remove unused imports and function Remove unused HashMap and PathBuf imports, and delete the unused get_source_description function to clean up the code.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
import type { EnvConflict, BackupInfo } from "@/types/env";
|
||||
|
||||
/**
|
||||
* 环境变量管理 API
|
||||
*/
|
||||
|
||||
/**
|
||||
* 检查指定应用的环境变量冲突
|
||||
* @param appType 应用类型 ("claude" | "codex" | "gemini")
|
||||
* @returns 环境变量冲突列表
|
||||
*/
|
||||
export async function checkEnvConflicts(
|
||||
appType: string,
|
||||
): Promise<EnvConflict[]> {
|
||||
return invoke<EnvConflict[]>("check_env_conflicts", { app: appType });
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除指定的环境变量 (会自动备份)
|
||||
* @param conflicts 要删除的环境变量冲突列表
|
||||
* @returns 备份信息
|
||||
*/
|
||||
export async function deleteEnvVars(
|
||||
conflicts: EnvConflict[],
|
||||
): Promise<BackupInfo> {
|
||||
return invoke<BackupInfo>("delete_env_vars", { conflicts });
|
||||
}
|
||||
|
||||
/**
|
||||
* 从备份文件恢复环境变量
|
||||
* @param backupPath 备份文件路径
|
||||
*/
|
||||
export async function restoreEnvBackup(backupPath: string): Promise<void> {
|
||||
return invoke<void>("restore_env_backup", { backupPath });
|
||||
}
|
||||
|
||||
/**
|
||||
* 检查所有应用的环境变量冲突
|
||||
* @returns 按应用类型分组的环境变量冲突
|
||||
*/
|
||||
export async function checkAllEnvConflicts(): Promise<
|
||||
Record<string, EnvConflict[]>
|
||||
> {
|
||||
const apps = ["claude", "codex", "gemini"];
|
||||
const results: Record<string, EnvConflict[]> = {};
|
||||
|
||||
await Promise.all(
|
||||
apps.map(async (app) => {
|
||||
try {
|
||||
results[app] = await checkEnvConflicts(app);
|
||||
} catch (error) {
|
||||
console.error(`检查 ${app} 环境变量失败:`, error);
|
||||
results[app] = [];
|
||||
}
|
||||
}),
|
||||
);
|
||||
|
||||
return results;
|
||||
}
|
||||
Reference in New Issue
Block a user