xdrc 0.1.0

An overkill way of making bash aliases
Documentation
use clap::Parser;
use tokio::io;
use xdrc::arguments;
use xdrc::init;

#[tokio::main]
async fn main() -> io::Result<()> {
    let cli = arguments::Cli::parse();

    match &cli.command {
        arguments::Commands::Info { path: _ } => {
            let init_file = init::InitFile::get().await;
            println!("{}", serde_json::to_string_pretty(&init_file).unwrap());
        }
        arguments::Commands::Add { key, command, args } => {
            let mut init_file = init::InitFile::get().await;
            init_file
                .add(key.to_string(), command.to_string(), args.to_owned())
                .await?;
        }
        arguments::Commands::Run { key, extra_args } => {
            let init_file = init::InitFile::get().await;
            if let Some(sc) = init_file.get_command(key) {
                xdrc::command::run(sc, extra_args).await;
            }
        }
        arguments::Commands::Delete { key } => {
            let mut init_file = init::InitFile::get().await;
            println!(
                "remove command: {}",
                init_file.remove(key).await.is_some()
            );
        }
    }
    Ok(())
}