Skip to content
API Documentation
BastionGuard™
RecoveryMain.vala
Go to the documentation of this file.
1/*
2 * bastionguard-backup — fork di linuxmint/bastionguard-backup
3 * BastionGuard™ Copyright (C) 2025–2026 Calogero Scarnà — GPLv3
4 *
5 * RecoveryMain.vala
6 *
7 * Modalità recovery: viene avviata la GUI normale (MainWindow) con
8 * TUTTE le funzionalità attive — backup, restore, wizard, impostazioni.
9 *
10 * La differenza rispetto all'avvio normale è solo il banner informativo
11 * mostrato all'avvio che avverte l'utente di essere in modalità recovery.
12 *
13 * NON viene impostato live_system() = true, così i bottoni "Crea" e
14 * "Ripristina" sono entrambi disponibili — l'utente può fare backup
15 * del sistema live o ripristinare snapshot esistenti.
16 */
17
18using GLib;
19using Gtk;
20
22
23 // Controlla bastionguard.recovery=1 in /proc/cmdline
24 public bool is_recovery_boot() {
25 try {
26 string cmdline;
27 FileUtils.get_contents("/proc/cmdline", out cmdline);
28 return "bastionguard.recovery=1" in cmdline;
29 } catch {
30 return false;
31 }
32 }
33
34 // Mostra il banner recovery sulla MainWindow già visibile.
35 // Chiamato da AppGtk.start_application() dopo window.show_all().
36 public static void show_recovery_banner(Gtk.Window parent) {
37
38 var dlg = new Gtk.MessageDialog(
39 parent,
40 Gtk.DialogFlags.MODAL,
41 Gtk.MessageType.WARNING,
42 Gtk.ButtonsType.OK,
43 "%s",
44 "BastionGuard™ — Modalità Recovery\n\n" +
45 "Il sistema è stato avviato dall'ambiente di recovery.\n\n" +
46 "Tutte le funzionalità sono disponibili:\n" +
47 " • Crea — esegui un backup dal sistema live\n" +
48 " • Ripristina — ripristina uno snapshot esistente\n" +
49 " • Configurazione guidata — configura il dispositivo\n\n" +
50 "Usa il menu tasto-destro del desktop per\n" +
51 "Riavviare o Spegnere il sistema."
52 );
53 dlg.set_title("BastionGuard™ Recovery");
54 dlg.present();
55 }
56
57} // namespace BastionGuardRecovery
static void show_recovery_banner(Gtk.Window parent)