mod roblox;
mod source;

use clap::{Parser,Subcommand};
use anyhow::Result as AResult;

#[derive(Parser)]
#[command(author, version, about, long_about = None)]
#[command(propagate_version = true)]
struct Cli {
	#[command(subcommand)]
	command: Commands,
}

#[derive(Subcommand)]
enum Commands{
	#[command(flatten)]
	Roblox(roblox::Commands),
	#[command(flatten)]
	Source(source::Commands),
}

#[tokio::main]
async fn main()->AResult<()>{
	let cli=Cli::parse();
	match cli.command{
		Commands::Roblox(commands)=>commands.run().await,
		Commands::Source(commands)=>commands.run().await,
	}
}