use ahab::{cli, scripts}; use anyhow::Result; use clap::Parser; fn main() -> Result<()> { // always load dotenv on start dotenvy::dotenv().ok(); let args = cli::Ahab::parse(); match args.command { cli::Commands::Compose { command } => { eprintln!( "DEPRECATION NOTICE: this is deprecated in favor of docker compose COMPOSE_FILE env" ); match command { cli::DockerCompose::Bash => scripts::docker_compose::bash(), cli::DockerCompose::Build => scripts::docker_compose::build(), cli::DockerCompose::Down => scripts::docker_compose::down(), cli::DockerCompose::Exec { rest } => scripts::docker_compose::exec(&rest), cli::DockerCompose::Ps => scripts::docker_compose::ps(), cli::DockerCompose::Rebuild => scripts::docker_compose::rebuild(), cli::DockerCompose::Restart => scripts::docker_compose::restart(), cli::DockerCompose::Start => scripts::docker_compose::start(None), cli::DockerCompose::Stop => scripts::docker_compose::stop(), cli::DockerCompose::Up => scripts::docker_compose::up(), } } cli::Commands::Django { command } => match command { cli::Django::MakeCommand { app, name } => scripts::django::make_command(&app, &name), cli::Django::Makemigrations => scripts::django::makemigrations(), cli::Django::Manage { rest } => scripts::django::manage(&rest), cli::Django::Migrate { rest } => scripts::django::migrate(&rest), cli::Django::Shell => scripts::django::shell(), cli::Django::Test => scripts::django::test(), }, cli::Commands::Postgres { command } => { let db_container = std::env::var("AHAB_POSTGRES_CONTAINER").unwrap_or("db".to_string()); match command { cli::Postgres::Import { path } => scripts::postgres::import(&db_container, &path), cli::Postgres::Dump { path } => scripts::postgres::dump(&db_container, &path), } } cli::Commands::Link { command } => match command { cli::Link::Add { paths, force } => scripts::link::add(&paths, force), cli::Link::Check { paths, porcelain, null, } => scripts::link::check(&paths, porcelain, null), }, cli::Commands::Completions { shell } => scripts::completions::completions(shell), } }