45 lines
1.4 KiB
Rust
45 lines
1.4 KiB
Rust
use slog::{crit, info, o, Drain};
|
|
|
|
static POSSIBLE_BACKENDS: &[&str] = &[
|
|
#[cfg(feature = "winit")]
|
|
"--winit : Run anvil as a X11 or Wayland client using winit.",
|
|
#[cfg(feature = "udev")]
|
|
"--tty-udev : Run anvil as a tty udev client (requires root if without logind).",
|
|
];
|
|
|
|
fn main() {
|
|
// A logger facility, here we use the terminal here
|
|
let log = slog::Logger::root(
|
|
slog_async::Async::default(slog_term::term_full().fuse()).fuse(),
|
|
//std::sync::Mutex::new(slog_term::term_full().fuse()).fuse(),
|
|
o!(),
|
|
);
|
|
let _guard = slog_scope::set_global_logger(log.clone());
|
|
slog_stdlog::init().expect("Could not setup log backend");
|
|
|
|
let arg = ::std::env::args().nth(1);
|
|
match arg.as_ref().map(|s| &s[..]) {
|
|
#[cfg(feature = "winit")]
|
|
Some("--winit") => {
|
|
info!(log, "Starting anvil with winit backend");
|
|
anvil::winit::run_winit(log);
|
|
}
|
|
#[cfg(feature = "udev")]
|
|
Some("--tty-udev") => {
|
|
info!(log, "Starting anvil on a tty using udev");
|
|
anvil::udev::run_udev(log);
|
|
}
|
|
Some(other) => {
|
|
crit!(log, "Unknown backend: {}", other);
|
|
}
|
|
None => {
|
|
println!("USAGE: anvil --backend");
|
|
println!();
|
|
println!("Possible backends are:");
|
|
for b in POSSIBLE_BACKENDS {
|
|
println!("\t{}", b);
|
|
}
|
|
}
|
|
}
|
|
}
|