discordrpc/src/main.rs

56 lines
1.2 KiB
Rust
Raw Normal View History

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 {
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
}