use clap::{Parser, Subcommand};
pub mod commands; use self::commands::{genhere, genscript, summarize};
#[derive(Parser, Debug)]
#[command(author, version, about)]
pub struct Cli {
#[command(subcommand)]
pub command: Option<Commands>,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Summarize(summarize::SummarizeArgs),
GenScript(genscript::GenScriptArgs),
GenHere(genhere::GenHereArgs),
}
pub fn run() -> anyhow::Result<()> {
let cli = Cli::parse();
match cli.command {
Some(Commands::Summarize(args)) => summarize::run(args),
Some(Commands::GenScript(args)) => genscript::run(args),
Some(Commands::GenHere(args)) => genhere::run(args),
None => summarize::default_run(),
}
}
pub async fn run_async() -> anyhow::Result<()> {
let cli = Cli::parse();
match cli.command {
Some(Commands::Summarize(args)) => {
summarize::run_async(args).await?;
}
Some(Commands::GenScript(args)) => {
genscript::run(args)?;
}
Some(Commands::GenHere(args)) => {
genhere::run(args)?;
}
None => {
summarize::run_async(summarize::SummarizeArgs::default()).await?;
}
}
Ok(())
}