pub mod args; pub mod commands; pub mod meta; pub mod types; pub mod utils; use args::{CLIArgs, Commands}; use clap::Parser; use commands::copy::copy_command; use commands::genhtml::genhtml_command; use commands::process::process_command; use commands::transcode::transcode_command; fn main() -> Result<(), Box> { let cli = CLIArgs::parse(); match cli.command.as_ref() { Some(Commands::Process(process_args)) => { process_command(&cli, process_args)?; } Some(Commands::Genhtml(genhtml_args)) => { genhtml_command(&cli, genhtml_args)?; } Some(Commands::Transcode(transcode_args)) => { transcode_command(&cli, transcode_args)?; } Some(Commands::Copy(copy_args)) => { copy_command(&cli, copy_args)?; } None => { panic!("please provide a subcommand"); } } Ok(()) }