feat: Pro 买断门禁、SFTP 精简与批量多机改造
新增 entitlement/license IPC 与 Waffo 一次性结账服务骨架,挂载 AI/转发/代理/串口/广播/批量导入导出门禁;批量执行改为结果矩阵并复用连接池,SFTP 工具栏图标化并去掉已连接条,同时完善跨平台本地终端与窗口配置。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
101d2164b4
commit
fea6d8db04
72 files changed
+3307
-396
No files matched your search
@@ -331,9 +331,15 @@ fn permission_bits(mode: u32) -> String {
|
||||
}
|
||||
|
||||
fn expand_home(value: &str) -> PathBuf {
|
||||
if let Some(relative) = value.strip_prefix("~/") {
|
||||
if value == "~" {
|
||||
return dirs::home_dir().unwrap_or_else(|| PathBuf::from(value));
|
||||
}
|
||||
let relative = value
|
||||
.strip_prefix("~/")
|
||||
.or_else(|| value.strip_prefix("~\\"));
|
||||
if let Some(relative) = relative {
|
||||
if let Some(home) = dirs::home_dir() {
|
||||
return home.join(relative);
|
||||
return home.join(std::path::Path::new(relative));
|
||||
}
|
||||
}
|
||||
PathBuf::from(value)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
use tauri::AppHandle;
|
||||
|
||||
use crate::services::license::{self, LicenseStatus};
|
||||
|
||||
#[tauri::command]
|
||||
pub fn license_get(app: AppHandle) -> Result<LicenseStatus, String> {
|
||||
license::read_status(&app)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub fn license_activate(app: AppHandle, token: String) -> Result<LicenseStatus, String> {
|
||||
license::activate(&app, &token)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub fn license_clear(app: AppHandle) -> Result<LicenseStatus, String> {
|
||||
license::clear(&app)
|
||||
}
|
||||
|
||||
#[tauri::command]
|
||||
pub fn license_device_id(app: AppHandle) -> Result<String, String> {
|
||||
license::get_or_create_device_id(&app)
|
||||
}
|
||||
@@ -2,6 +2,7 @@ pub mod ai;
|
||||
pub mod deep_link;
|
||||
pub mod files;
|
||||
pub mod known_hosts;
|
||||
pub mod license;
|
||||
pub mod local_terminal;
|
||||
pub mod serial;
|
||||
pub mod ssh;
|
||||
|
||||
Reference in new issue
Block a user