Implement Driftwood AppImage manager
This commit is contained in:
35
src/main.rs
Normal file
35
src/main.rs
Normal 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()
|
||||
}
|
||||
Reference in New Issue
Block a user