2022-02-12 21:59:16 +00:00
|
|
|
mod cli;
|
2022-02-24 16:38:11 +00:00
|
|
|
mod execute;
|
2022-02-12 21:59:16 +00:00
|
|
|
|
2022-02-13 17:32:35 +00:00
|
|
|
use clap::{IntoApp, StructOpt};
|
2022-02-13 17:32:17 +00:00
|
|
|
use clap_complete::generate;
|
2022-02-12 21:59:16 +00:00
|
|
|
use colored::Colorize;
|
2022-02-24 16:38:11 +00:00
|
|
|
use std::{io, process::exit, thread::sleep, time::Duration};
|
2022-02-13 12:03:22 +00:00
|
|
|
|
|
|
|
use crate::cli::Cli;
|
2022-02-12 21:59:16 +00:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
better_panic::install();
|
|
|
|
|
|
|
|
let args = Cli::parse();
|
|
|
|
|
2022-05-22 13:46:54 +00:00
|
|
|
// print completions
|
2022-02-13 17:32:17 +00:00
|
|
|
if let Some(shell) = args.print_completions {
|
2022-02-20 21:18:41 +00:00
|
|
|
let mut clap_app = Cli::command();
|
2022-02-13 17:32:17 +00:00
|
|
|
let app_name = clap_app.get_name().to_string();
|
|
|
|
|
|
|
|
generate(shell, &mut clap_app, app_name, &mut io::stdout());
|
|
|
|
exit(0)
|
|
|
|
}
|
|
|
|
|
2022-05-22 13:46:54 +00:00
|
|
|
// print manpage
|
2022-03-09 17:39:33 +00:00
|
|
|
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)
|
|
|
|
}
|
|
|
|
|
2022-05-22 13:46:54 +00:00
|
|
|
// start discord rpc
|
2022-03-09 17:23:26 +00:00
|
|
|
execute::run(args.clone());
|
2022-02-12 21:59:16 +00:00
|
|
|
|
2022-02-13 12:03:22 +00:00
|
|
|
println!(
|
|
|
|
"{} {}",
|
|
|
|
"Connected!".green(),
|
|
|
|
"Press Ctrl+C to exit!".magenta()
|
|
|
|
);
|
2022-02-12 21:59:16 +00:00
|
|
|
|
2022-03-09 17:23:26 +00:00
|
|
|
if args.timeout != 0 {
|
|
|
|
sleep(Duration::from_secs(args.timeout));
|
|
|
|
|
|
|
|
println!("{}", "Stopping due to timeout...".blue());
|
|
|
|
|
|
|
|
exit(0)
|
|
|
|
} else {
|
|
|
|
loop {
|
2022-05-22 13:46:54 +00:00
|
|
|
// empty `loop {}` wastes CPU cycles
|
2022-03-09 17:23:26 +00:00
|
|
|
sleep(Duration::from_secs(9999999));
|
|
|
|
}
|
2022-02-13 12:24:56 +00:00
|
|
|
}
|
2022-02-12 21:59:16 +00:00
|
|
|
}
|