56 lines
1.2 KiB
Rust
56 lines
1.2 KiB
Rust
mod cli;
|
|
mod execute;
|
|
|
|
use clap::{IntoApp, StructOpt};
|
|
use clap_complete::generate;
|
|
use colored::Colorize;
|
|
use std::{io, process::exit, thread::sleep, time::Duration};
|
|
|
|
use crate::cli::Cli;
|
|
|
|
fn main() {
|
|
better_panic::install();
|
|
|
|
let args = Cli::parse();
|
|
|
|
// print completions
|
|
if let Some(shell) = args.print_completions {
|
|
let mut clap_app = Cli::command();
|
|
let app_name = clap_app.get_name().to_string();
|
|
|
|
generate(shell, &mut clap_app, app_name, &mut io::stdout());
|
|
exit(0)
|
|
}
|
|
|
|
// print manpage
|
|
if args.manpage {
|
|
let clap_app = Cli::command();
|
|
let man = clap_mangen::Man::new(clap_app);
|
|
|
|
man.render(&mut io::stdout()).expect("generate manpage");
|
|
exit(0)
|
|
}
|
|
|
|
// start discord rpc
|
|
execute::run(args.clone());
|
|
|
|
println!(
|
|
"{} {}",
|
|
"Connected!".green(),
|
|
"Press Ctrl+C to exit!".magenta()
|
|
);
|
|
|
|
if args.timeout != 0 {
|
|
sleep(Duration::from_secs(args.timeout));
|
|
|
|
println!("{}", "Stopping due to timeout...".blue());
|
|
|
|
exit(0)
|
|
} else {
|
|
loop {
|
|
// empty `loop {}` wastes CPU cycles
|
|
sleep(Duration::from_secs(9999999));
|
|
}
|
|
}
|
|
}
|