use crate::config::Environment;
use crate::docker;
use crate::ui;
use anyhow::Result;
use clap::Subcommand;
#[derive(Subcommand, Clone, Copy)]
pub enum ValidateCommand {
Dev,
Prod,
}
pub fn run(cmd: ValidateCommand) -> Result<()> {
docker::check_docker()?;
match cmd {
ValidateCommand::Dev => validate(Environment::Dev),
ValidateCommand::Prod => validate(Environment::Prod),
}
Ok(())
}
fn validate(env: Environment) {
ui::info(&format!("Validating {env} configuration..."));
let output = docker::compose_output(env, &["config", "--quiet"]);
match output {
Ok(_) => {
ui::success("Configuration is valid!");
}
Err(e) => {
ui::error(&format!("Configuration has errors: {e}"));
}
}
}