Implement basic partitioning backend and CLI interface

This commit is contained in:
2026-02-03 16:20:59 +01:00
parent aae235e81f
commit 3c4870b104
3 changed files with 118 additions and 24 deletions

View File

@@ -1,30 +1,9 @@
import argparse
import sys
import logging
import gi
gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")
from gi.repository import Adw, Gio, Gtk
from .ui.window import InstallerWindow
class IridiumInstallerApp(Adw.Application):
def __init__(self, mock_mode=False):
super().__init__(
application_id="org.iridium.Installer",
flags=Gio.ApplicationFlags.FLAGS_NONE,
)
self.mock_mode = mock_mode
def do_activate(self):
win = self.props.active_window
if not win:
win = InstallerWindow(application=self, mock_mode=self.mock_mode)
win.present()
# Configure logging
logging.basicConfig(level=logging.INFO)
def main():
parser = argparse.ArgumentParser(description="Iridium OS Installer")
@@ -33,8 +12,47 @@ def main():
action="store_true",
help="Run in mock mode (no actual changes to disk)",
)
parser.add_argument(
"--partition-disk",
help="Automatically partition the specified disk (WARNING: DESTROYS DATA)",
)
args = parser.parse_args()
if args.partition_disk:
from .backend.disk import auto_partition_disk
try:
print(f"Starting partitioning on {args.partition_disk}...")
result = auto_partition_disk(args.partition_disk)
print("Partitioning successful!")
print(f"EFI: {result['efi']}")
print(f"Swap: {result['swap']}")
print(f"Root: {result['root']}")
return 0
except Exception as e:
print(f"Partitioning failed: {e}", file=sys.stderr)
return 1
import gi
gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")
from gi.repository import Adw, Gio
from .ui.window import InstallerWindow
class IridiumInstallerApp(Adw.Application):
def __init__(self, mock_mode=False):
super().__init__(
application_id="org.iridium.Installer",
flags=Gio.ApplicationFlags.FLAGS_NONE,
)
self.mock_mode = mock_mode
def do_activate(self):
win = self.props.active_window
if not win:
win = InstallerWindow(application=self, mock_mode=self.mock_mode)
win.present()
app = IridiumInstallerApp(mock_mode=args.mock)
return app.run(sys.argv)