use anyhow::Result; use crate::command_builder::CommandBuilder; pub fn build() -> Result<()> { CommandBuilder::docker_compose().args("build").exec() } pub fn down() -> Result<()> { CommandBuilder::docker_compose().args("down").exec() } pub fn run(service: &str, rest: &[String]) -> Result<()> { CommandBuilder::docker_compose() .args("run --rm") .arg(service) .args(rest) .exec_replace() } pub fn exec(service: &str, rest: &[String]) -> Result<()> { CommandBuilder::docker_compose() .args("exec") .arg(service) .args(rest) .exec() } pub fn ps() -> Result<()> { CommandBuilder::docker_compose().args("ps").exec() } pub fn start(service: Option<&str>) -> Result<()> { let mut command = CommandBuilder::docker_compose().args("start"); if let Some(service) = service { command = command.arg(service); } command.exec() } pub fn stop() -> Result<()> { CommandBuilder::docker_compose().args("stop").exec() } pub fn up() -> Result<()> { CommandBuilder::docker_compose().args("up -d").exec() } pub fn rebuild() -> Result<()> { stop()?; build()?; up() } pub fn restart() -> Result<()> { stop()?; up() }