Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: Ie83791e82c68f757173e5dc53a646b356a6a6964
49 lines
1 KiB
Rust
49 lines
1 KiB
Rust
use clap::Parser;
|
|
use tracing_subscriber::EnvFilter;
|
|
|
|
mod app;
|
|
mod client;
|
|
mod components;
|
|
mod plugin_ui;
|
|
mod state;
|
|
mod styles;
|
|
|
|
use dioxus::prelude::*;
|
|
|
|
/// Pinakes desktop UI client
|
|
#[derive(Parser)]
|
|
#[command(name = "pinakes-ui", version, about)]
|
|
struct Cli {
|
|
/// Server URL to connect to
|
|
#[arg(
|
|
short,
|
|
long,
|
|
env = "PINAKES_SERVER_URL",
|
|
default_value = "http://localhost:3000"
|
|
)]
|
|
server: String,
|
|
|
|
/// Set log level (trace, debug, info, warn, error)
|
|
#[arg(long, default_value = "warn")]
|
|
log_level: String,
|
|
}
|
|
|
|
fn main() {
|
|
let cli = Cli::parse();
|
|
|
|
let env_filter = EnvFilter::try_new(&cli.log_level)
|
|
.unwrap_or_else(|_| EnvFilter::new("warn"));
|
|
|
|
tracing_subscriber::fmt()
|
|
.with_env_filter(env_filter)
|
|
.compact()
|
|
.init();
|
|
|
|
// SAFETY: Called before any threads are spawned (single-threaded at this
|
|
// point).
|
|
unsafe { std::env::set_var("PINAKES_SERVER_URL", &cli.server) };
|
|
|
|
tracing::info!(server = %cli.server, "starting pinakes desktop UI");
|
|
|
|
launch(app::App);
|
|
}
|