fix build

This commit is contained in:
2025-05-31 16:07:12 +02:00
parent b6dd96cbad
commit 091a2123bb
21 changed files with 1034 additions and 191 deletions

View File

@ -33,7 +33,7 @@ pub async fn sql_execute(
/// Erstellt eine verschlüsselte Datenbank
#[tauri::command]
pub fn create_encrypted_database_old(
pub fn create_encrypted_database(
app_handle: AppHandle,
path: String,
key: String,
@ -41,9 +41,15 @@ pub fn create_encrypted_database_old(
) -> Result<String, String> {
// Ressourcenpfad zur eingebundenen Datenbank auflösen
println!("Arbeitsverzeichnis: {:?}", std::env::current_dir());
println!(
"Ressourcenverzeichnis: {:?}",
app_handle.path().resource_dir()
);
let resource_path = app_handle
.path()
.resolve("vault.db", BaseDirectory::Resource)
.resolve("database/vault.db", BaseDirectory::Resource)
.map_err(|e| format!("Fehler beim Auflösen des Ressourcenpfads: {}", e))?;
// Prüfen, ob die Ressourcendatei existiert
@ -227,9 +233,10 @@ pub fn open_encrypted_database(
return Err("Datenbankdatei nicht gefunden".into());
}
let conn = core::open_and_init_db(&path, &key, false)?;
let conn = core::open_and_init_db(&path, &key, false)
.map_err(|e| format!("Fehler beim öffnen: {}", e));
let mut db = state.0.lock().map_err(|e| e.to_string())?;
*db = Some(conn);
*db = Some(conn.unwrap());
Ok(format!("success"))
}
@ -260,7 +267,7 @@ fn prepare_temporary_asset_db(
//.resolve("vault.db", BaseDirectory::Resource)
let asset_bytes = app_handle
.asset_resolver()
.get(asset_name.to_string())
.get(asset_name.to_owned())
.ok_or_else(|| format!("Asset '{}' wurde nicht im Bundle gefunden.", asset_name))?
.bytes()
.to_vec();
@ -493,7 +500,7 @@ fn open_and_verify_encrypted_db(db_path: &Path, key: &str) -> Result<Connection,
/// Hauptfunktion: Erstellt eine verschlüsselte Datenbank aus einem gebündelten Asset.
#[tauri::command]
pub fn create_encrypted_database(
pub fn create_encrypted_database_new(
app_handle: AppHandle<Wry>,
path: String,
key: String,
@ -503,7 +510,7 @@ pub fn create_encrypted_database(
let temp_db_path: PathBuf; // Muss deklariert werden, um im Fehlerfall aufgeräumt werden zu können
// Schritt 1: Asset vorbereiten
match prepare_temporary_asset_db(&app_handle, &asset_name, BaseDirectory::AppData) {
match prepare_temporary_asset_db(&app_handle, &asset_name, BaseDirectory::Resource) {
Ok(path) => temp_db_path = path,
Err(e) => return Err(e),
}

View File

@ -12,73 +12,6 @@ pub fn run() {
let protocol_name = "haex-extension";
tauri::Builder::default()
.setup(|app| {
// --- START DER ASSET-INVENTUR (Korrigierte Version) ---
println!("\n[INVENTUR] App-Setup wird ausgeführt. Liste alle Assets im Bundle auf...");
let mut found_assets_count = 0;
// KORREKTE METHODE: Direkt über eine Referenz auf den AssetResolver iterieren
for asset_name in app.asset_resolver().iter() {
found_assets_count += 1;
// Wir geben jeden gefundenen Asset-Namen aus
println!("[INVENTUR] Gefundenes Asset: '{}'", asset_name.0);
}
if found_assets_count == 0 {
println!("[INVENTUR] Es wurden KEINE Assets im Bundle gefunden!");
} else {
println!(
"[INVENTUR] Inventur abgeschlossen. {} Assets gefunden.",
found_assets_count
);
}
println!("[INVENTUR] --- ENDE DER INVENTUR ---\n");
// --- ENDE DER ASSET-INVENTUR ---
// --- START DES DEFINITIVEN ASSET-TESTS ---
println!("\n[DEBUG] App-Setup wird ausgeführt. Versuche, die Datenbank zu laden...");
// BITTE SICHERSTELLEN: Dieser String muss EXAKT dem SCHLÜSSEL (KEY)
// in deiner tauri.conf.json entsprechen!
let asset_to_find = "database/vault.db";
println!(
"[DEBUG] Suche nach Asset mit dem Alias: '{}'",
asset_to_find
);
match app.asset_resolver().get(asset_to_find.to_string()) {
Some(asset) => {
// ERFOLG! Das Asset wurde gefunden.
println!("\n✅ ✅ ✅ ERFOLG! ✅ ✅ ✅");
println!(
"[DEBUG] Asset '{}' wurde im Bundle gefunden.",
asset_to_find
);
println!("[DEBUG] Größe der Datenbank: {} Bytes.", asset.bytes.len());
}
None => {
// FEHLER! Das Asset wurde nicht gefunden.
println!("\n❌ ❌ ❌ FEHLER! ❌ ❌ ❌");
println!(
"[DEBUG] Asset '{}' wurde NICHT im Bundle gefunden.",
asset_to_find
);
println!("[DEBUG] Mögliche Ursachen:");
println!("[DEBUG] 1. Der Alias-String im Code ist falsch (Tippfehler?).");
println!("[DEBUG] 2. Der Schlüssel in 'tauri.conf.json' ist anders.");
println!(
"[DEBUG] 3. Der Build-Cache ist veraltet (lösche 'src-tauri/target')."
);
}
}
println!("[DEBUG] --- ENDE DES ASSET-TESTS ---\n");
// --- ENDE DES DEFINITIVEN ASSET-TESTS ---
// Hier kann dein restlicher Setup-Code stehen bleiben
Ok(())
})
.register_uri_scheme_protocol(protocol_name, move |context, request| {
match extension::core::extension_protocol_handler(&context, &request) {
Ok(response) => response, // Wenn der Handler Ok ist, gib die Response direkt zurück