diff --git a/main.js b/main.js index af70c2b..dd7a3d0 100644 --- a/main.js +++ b/main.js @@ -7,6 +7,8 @@ const crypto = require('crypto'); const { execSync } = require('child_process'); const https = require('https'); const http = require('http'); +const Updater = require('./updater.js'); // Auto-Updater +let updater = null; const { createRepoGitHub, @@ -1586,3 +1588,49 @@ ipcMain.handle('get-commit-files', async (event, data) => { return { ok: false, error: String(error) }; } }); + + + + + +// main.js - Updater IPC Handlers + +// 1. Version abfragen +ipcMain.handle('get-app-version', async () => { + return { ok: true, version: app.getVersion() }; +}); + +// 2. Suche nach Updates (Manuell oder Automatisch) +ipcMain.handle('check-for-updates', async (event) => { + console.log("[Main] Update-Check angefordert..."); + try { + if (!updater) { + const win = BrowserWindow.fromWebContents(event.sender); + if (win) updater = new Updater(win); + } + if (updater) await updater.checkForUpdates(false); + return { ok: true }; + } catch (error) { + console.error('[Main] Fehler beim Update-Check:', error); + return { ok: false, error: String(error) }; + } +}); + +// 3. Download starten (wird vom "Jetzt installieren" Button gerufen) +ipcMain.handle('start-update-download', async (event, asset) => { + console.log("[Main] Download-Signal erhalten für:", asset ? asset.name : "Unbekannt"); + try { + if (!updater) { + const win = BrowserWindow.fromWebContents(event.sender); + updater = new Updater(win); + } + if (asset && asset.browser_download_url) { + await updater.startDownload(asset); + return { ok: true }; + } + return { ok: false, error: 'Ungültiges Asset' }; + } catch (error) { + console.error('[Main] Download-Fehler:', error); + return { ok: false, error: String(error) }; + } +}); \ No newline at end of file