oauth-db-cli 0.1.0

Command-line tool for managing OAuth-DB platform
Documentation
mod auth;
mod cli;
mod client;
mod commands;
mod config;
mod crypto;
mod error;
mod output;

use clap::Parser;
use cli::{Cli, Commands};
use error::Result;
use output::print_error;

#[tokio::main]
async fn main() {
    if let Err(e) = run().await {
        print_error(&format!("Error: {}", e));
        std::process::exit(1);
    }
}

async fn run() -> Result<()> {
    let cli = Cli::parse();

    // Handle global flags
    if cli.no_color {
        colored::control::set_override(false);
    }

    // Execute command
    match &cli.command {
        Commands::Login(args) => commands::login::execute(args).await,
        Commands::Logout => commands::logout::execute().await,
        Commands::Whoami => commands::whoami::execute().await,
        Commands::Accounts { command } => commands::accounts::execute(command).await,
        Commands::App { command } => commands::app::execute(command, &cli).await,
        Commands::User { command } => commands::user::execute(command, &cli).await,
        Commands::Admin { command } => commands::admin::execute(command, &cli).await,
        Commands::Config { command } => commands::config::execute(command).await,
    }
}