diff --git a/Cargo.toml b/Cargo.toml index 68cf0be..b9aa084 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,12 +36,14 @@ category = "Utility" allow_downgrades = true [features] +default = ["ui"] +ui = ["dep:ui"] fake_hardware = ["hardware/fake_hardware"] [dependencies] data.workspace = true -ui.workspace = true +ui = { workspace = true, optional = true } thiserror.workspace = true clap.workspace = true log.workspace = true diff --git a/src/args.rs b/src/args.rs index 5862a10..b8fada3 100644 --- a/src/args.rs +++ b/src/args.rs @@ -23,6 +23,7 @@ pub struct Args { )] pub config_name: Option, + #[cfg(feature = "ui")] #[arg( long = "cli", default_value_t = false, diff --git a/src/main.rs b/src/main.rs index 614a2e2..8ec604b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -43,6 +43,7 @@ fn setup_logs(args: &Args) { builder.filter_level(LevelFilter::Warn); builder.filter_module("hardware", level_filter); builder.filter_module("data", level_filter); + #[cfg(feature = "ui")] builder.filter_module("ui", level_filter); builder.filter_module("fan-control", level_filter); builder @@ -85,6 +86,7 @@ fn try_run() -> Result<()> { let args = Args::parse(); setup_logs(&args); + #[cfg(feature = "ui")] ui::localize::localize(); data::localize::localize(); @@ -112,10 +114,15 @@ fn try_run() -> Result<()> { update: Update::new(), }; - match args.cli { - true => cli::run_cli(app_state), - false => ui::run_ui(app_state), - }; + #[cfg(not(feature = "ui"))] + cli::run_cli(app_state); + #[cfg(feature = "ui")] + { + match args.cli { + true => cli::run_cli(app_state), + false => ui::run_ui(app_state), + }; + } Ok(()) }