use algae_cli::cli::*;
use clap::Parser;
#[derive(Parser)]
#[clap(
version,
max_term_width = 100,
after_help = "Use --help for a usage guide.",
after_long_help = ""
)]
enum Command {
Decrypt(decrypt::DecryptArgs),
Encrypt(encrypt::EncryptArgs),
Keygen(keygen::KeygenArgs),
Protect(protect::ProtectArgs),
Reveal(reveal::RevealArgs),
#[command(hide = true, name = "_docs")]
Docs,
}
fn main() -> miette::Result<()> {
tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.unwrap()
.block_on(async {
let command = Command::parse();
match command {
Command::Decrypt(args) => decrypt::run(args).await,
Command::Encrypt(args) => encrypt::run(args).await,
Command::Keygen(args) => keygen::run(args).await,
Command::Protect(args) => protect::run(args).await,
Command::Reveal(args) => reveal::run(args).await,
Command::Docs => {
let markdown = clap_markdown::help_markdown::<Command>();
println!("{}", markdown);
Ok(())
}
}
})
}