mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-10-28 08:20:49 +08:00
将扩展配置、接口和设置页切换为 EasyFrp,支持按行填写多个客户端连接 URL,通过 easyfrpc control 启动并校验协议与密钥路径。 旧 gostc 配置不自动启用 EasyFrp,升级后需重新配置;启动日志不再输出命令参数,避免暴露连接信息。 完整 Docker 镜像包含 easyfrpc、easytier-core、easytier-cli 和 frpc,通过独立下载脚本及版本锁定文件校验下载摘要和二进制架构。
49 lines
1.2 KiB
Rust
49 lines
1.2 KiB
Rust
use std::path::PathBuf;
|
|
|
|
use super::ExtensionId;
|
|
|
|
pub fn default_binary_path(id: ExtensionId) -> &'static str {
|
|
match id {
|
|
ExtensionId::Ttyd => "ttyd.win32.exe",
|
|
ExtensionId::Easyfrp => "easyfrpc.exe",
|
|
ExtensionId::Easytier => "easytier-core.exe",
|
|
ExtensionId::Frpc => "frpc.exe",
|
|
}
|
|
}
|
|
|
|
pub fn binary_path(id: ExtensionId) -> PathBuf {
|
|
if id == ExtensionId::Ttyd {
|
|
if let Some(path) = env_path("ONE_KVM_TTYD_PATH") {
|
|
return path;
|
|
}
|
|
}
|
|
|
|
find_in_app_dir(default_binary_path(id))
|
|
.unwrap_or_else(|| PathBuf::from(default_binary_path(id)))
|
|
}
|
|
|
|
pub fn default_ttyd_shell() -> &'static str {
|
|
"cmd"
|
|
}
|
|
|
|
fn env_path(name: &str) -> Option<PathBuf> {
|
|
std::env::var(name)
|
|
.ok()
|
|
.map(|path| path.trim().to_string())
|
|
.filter(|path| !path.is_empty())
|
|
.map(PathBuf::from)
|
|
}
|
|
|
|
fn find_in_app_dir(binary_name: &str) -> Option<PathBuf> {
|
|
if let Ok(exe_path) = std::env::current_exe() {
|
|
if let Some(exe_dir) = exe_path.parent() {
|
|
let bundled = exe_dir.join(binary_name);
|
|
if bundled.exists() {
|
|
return Some(bundled);
|
|
}
|
|
}
|
|
}
|
|
|
|
None
|
|
}
|