Implement Driftwood AppImage manager

This commit is contained in:
2026-02-26 23:04:27 +02:00
commit c3620b487d
33 changed files with 10399 additions and 0 deletions

35
src/main.rs Normal file
View File

@@ -0,0 +1,35 @@
mod application;
mod cli;
mod config;
mod core;
mod ui;
mod window;
use clap::Parser;
use glib::ExitCode;
use gtk::prelude::*;
use application::DriftwoodApplication;
use config::{APP_ID, GSETTINGS_SCHEMA_DIR};
fn main() -> ExitCode {
// Point GSettings at our compiled schema directory (dev builds)
std::env::set_var("GSETTINGS_SCHEMA_DIR", GSETTINGS_SCHEMA_DIR);
// Parse CLI arguments
let parsed = cli::Cli::parse();
// If a subcommand was given, run in CLI mode (no GUI)
if let Some(command) = parsed.command {
// Initialize GTK minimally for GSettings access
gtk::init().expect("Failed to initialize GTK");
return cli::run_command(command);
}
// Otherwise, launch the full GUI application
gio::resources_register_include!("driftwood.gresource")
.expect("Failed to register resources");
let app = DriftwoodApplication::new(APP_ID, &gio::ApplicationFlags::empty());
app.run()
}