Vydané zdroje
Stáhnout zdroje ZIP
CH-J Tools
Procházejte adresáře a soubory konkrétního vydání aplikace.
CH-J / Server Manager
872 souborů
core-20261030T220507Z-61e4558d889f
Přidáno: · Sestaveno:
1
//! Core update commands. The UI never passes a path, key or verification flag.3
use super::{logged, main_core, text, CommandResult};4
use crate::core::app::CoreSlot;5
use crate::core::error::CoreError;6
use serde_json::{json, Value};7
use tauri::{State, Webview};9
#[tauri::command]10
pub async fn core_updates_get_state(webview: Webview, slot: State<'_, CoreSlot>) -> CommandResult {11
Ok(main_core(&webview, &slot)?.services.updates.get_state())12
}14
#[tauri::command]15
pub async fn core_updates_check(webview: Webview, slot: State<'_, CoreSlot>) -> CommandResult {16
let core = main_core(&webview, &slot)?;17
let result = core.services.updates.check().await;18
logged(&core, "updates:check", result)19
}21
#[tauri::command]22
pub async fn core_updates_select(webview: Webview, slot: State<'_, CoreSlot>, payload: Option<Value>) -> CommandResult {23
let core = main_core(&webview, &slot)?;24
let payload = super::payload(payload);25
logged(&core, "updates:select", core.services.updates.select(text(&payload, "id")))26
}28
#[tauri::command]29
pub async fn core_updates_download(webview: Webview, slot: State<'_, CoreSlot>) -> CommandResult {30
let core = main_core(&webview, &slot)?;31
let result = core.services.updates.download().await;32
logged(&core, "updates:download", result)33
}35
#[tauri::command]36
pub async fn core_updates_install(webview: Webview, slot: State<'_, CoreSlot>) -> CommandResult {37
let core = main_core(&webview, &slot)?;38
let result = async {39
core.services.biometrics.require_sensitive_action().await?;40
// Re-hash and re-verify the internally tracked artifact right before launching it.41
let path = core.services.updates.prepare_installer_launch().await?;42
let launched = crate::core::updates::launcher::install(&core.app, &path, &core.logger).await?;43
core.services.updates.mark_installer_launched()?;44
if launched.restart {45
let app = core.app.clone();46
tauri::async_runtime::spawn(async move {47
tokio::time::sleep(std::time::Duration::from_millis(250)).await;48
app.restart();49
});50
}51
Ok(json!({ "ok": true, "installed": launched.installed, "restarting": launched.restart }))52
}53
.await;54
logged(&core, "updates:install", result)55
}57
#[tauri::command]58
pub async fn core_updates_reveal(webview: Webview, slot: State<'_, CoreSlot>) -> CommandResult {59
let core = main_core(&webview, &slot)?;60
let result = (|| {61
let path = core.services.updates.verified_download_path().ok_or_else(|| CoreError::plain("No verified update has been downloaded."))?;62
use tauri_plugin_opener::OpenerExt;63
core.app.opener().reveal_item_in_dir(&path).map_err(|e| CoreError::plain(e.to_string()))?;64
Ok(json!({ "ok": true }))65
})();66
logged(&core, "updates:reveal", result)67
}SHA-256
b1468c813e30cb317bd000289d8164d74e2b47b1dbc204639e348ac49a61c017CH-J Proprietary Software License 1.14 · Zdroje jsou zveřejněny pod CH-J Proprietary Software License 1.14. Jejich dostupnost nemění licenční podmínky ani neposkytuje další oprávnění.
SHA-256 archivu
77380d4805485ffa4027fbe7858b5836f197a4aa9d52358a43e2d12d018744df