56 lines
2.5 KiB
Rust
56 lines
2.5 KiB
Rust
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),
|
|
}
|
|
}
|