use std::process::Command;
use crate::Result;
pub struct Builder
{
dockerfile: String,
tag: String,
}
impl Builder
{
pub fn build(self) -> Result<()>
{
let mut cmd = Command::new("docker");
cmd.args(["build", "-t", &self.tag, "-f", &self.dockerfile, "."]);
let mut r = cmd.spawn()?;
r.wait()?;
Ok(())
}
}
pub fn build(dockerfile: impl Into<String>, tag: impl Into<String>) -> Builder
{
let dockerfile = dockerfile.into();
let tag = tag.into();
Builder { dockerfile, tag }
}