2025-09-05 10:19:14 +08:00
|
|
|
// unused imports removed
|
2025-08-30 21:54:11 +08:00
|
|
|
use std::path::PathBuf;
|
|
|
|
|
|
|
|
|
|
use crate::config::{
|
2025-09-05 10:19:14 +08:00
|
|
|
delete_file, sanitize_provider_name,
|
2025-08-30 21:54:11 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/// 获取 Codex 配置目录路径
|
|
|
|
|
pub fn get_codex_config_dir() -> PathBuf {
|
|
|
|
|
dirs::home_dir().expect("无法获取用户主目录").join(".codex")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 获取 Codex auth.json 路径
|
|
|
|
|
pub fn get_codex_auth_path() -> PathBuf {
|
|
|
|
|
get_codex_config_dir().join("auth.json")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 获取 Codex config.toml 路径
|
|
|
|
|
pub fn get_codex_config_path() -> PathBuf {
|
|
|
|
|
get_codex_config_dir().join("config.toml")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 获取 Codex 供应商配置文件路径
|
|
|
|
|
pub fn get_codex_provider_paths(
|
|
|
|
|
provider_id: &str,
|
|
|
|
|
provider_name: Option<&str>,
|
|
|
|
|
) -> (PathBuf, PathBuf) {
|
|
|
|
|
let base_name = provider_name
|
|
|
|
|
.map(|name| sanitize_provider_name(name))
|
|
|
|
|
.unwrap_or_else(|| sanitize_provider_name(provider_id));
|
|
|
|
|
|
|
|
|
|
let auth_path = get_codex_config_dir().join(format!("auth-{}.json", base_name));
|
|
|
|
|
let config_path = get_codex_config_dir().join(format!("config-{}.toml", base_name));
|
|
|
|
|
|
|
|
|
|
(auth_path, config_path)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// 删除 Codex 供应商配置文件
|
|
|
|
|
pub fn delete_codex_provider_config(provider_id: &str, provider_name: &str) -> Result<(), String> {
|
|
|
|
|
let (auth_path, config_path) = get_codex_provider_paths(provider_id, Some(provider_name));
|
|
|
|
|
|
|
|
|
|
delete_file(&auth_path).ok();
|
|
|
|
|
delete_file(&config_path).ok();
|
|
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
|
2025-09-05 10:19:14 +08:00
|
|
|
//(移除未使用的备份/保存/恢复/导入函数,避免 dead_code 告警)
|