summaryrefslogtreecommitdiffstats
path: root/src/runner/buildah.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/runner/buildah.rs')
-rw-r--r--src/runner/buildah.rs62
1 files changed, 0 insertions, 62 deletions
diff --git a/src/runner/buildah.rs b/src/runner/buildah.rs
deleted file mode 100644
index 72a2e5f..0000000
--- a/src/runner/buildah.rs
+++ /dev/null
@@ -1,62 +0,0 @@
-use scopeguard::defer;
-use std::{
- io::{Error, ErrorKind},
- process::{Command, Stdio},
-};
-
-use super::*;
-use crate::types::*;
-
-static IMAGE: &str = "rebel:latest";
-
-pub struct BuildahRunner<'a> {
- tasks: &'a TaskMap,
-}
-
-impl<'a> BuildahRunner<'a> {
- pub fn new(tasks: &'a TaskMap) -> Self {
- BuildahRunner { tasks }
- }
-}
-
-fn check_status(output: &std::process::Output, message: &str) -> Result<()> {
- if output.status.success() {
- Ok(())
- } else {
- Err(Error::new(ErrorKind::Other, message))
- }
-}
-
-impl<'a> Runner for BuildahRunner<'a> {
- fn run(&self, task: &TaskRef) -> Result<()> {
- let task_def = self.tasks.get(task).expect("Invalid TaskRef");
-
- let buildah_from = Command::new("buildah")
- .arg("from")
- .arg("--name")
- .arg(task)
- .arg(IMAGE)
- .output()?;
- check_status(&buildah_from, "unable to create container")?;
-
- defer! {
- let _ = Command::new("buildah")
- .arg("rm")
- .arg(task)
- .stdout(Stdio::null())
- .output();
- }
-
- let buildah_run = Command::new("buildah")
- .arg("run")
- .arg(task)
- .arg("sh")
- .arg("-c")
- .arg(&task_def.run)
- .output()?;
-
- println!("{}:\n\t{:?}\n\t{:?}", task, task_def, buildah_run);
-
- Ok(())
- }
-}