Files
ahab/src/scripts/docker_compose.rs

60 lines
1.2 KiB
Rust

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()
}