diff --git a/rust/src/builder/docker.rs b/rust/src/builder/docker.rs new file mode 100644 index 0000000..ab0e8df --- /dev/null +++ b/rust/src/builder/docker.rs @@ -0,0 +1,53 @@ +use std::process; + +pub fn build(dir: String, image: String) { + let mut child = process::Command::new("docker") + .arg("build") + .arg(image) + .arg(dir) + .spawn() + .expect("failed to execute 'docker build'"); + + child.wait(); +} + +pub fn push(image: String) { + let mut child = process::Command::new("docker") + .arg("push") + .arg(image) + .spawn() + .expect("failed to execute 'docker push'"); + + child.wait(); + +} + +pub fn logs(name: String) { + let mut child = process::Command::new("docker") + .arg("logs") + .arg("-f") + .arg(name) + .spawn() + .expect("failed to execute 'docker logs'"); + + child.wait(); +} + +pub fn cancel(name: String) { + let mut child = process::Command::new("docker") + .arg("stop") + .arg(name.clone()) + .spawn() + .expect("failed to execute 'docker stop'"); + + child.wait(); + + child = process::Command::new("docker") + .arg("rm") + .arg("-f") + .arg(name.clone()) + .spawn() + .expect("failed to execute 'docker rm'"); + + child.wait(); +} diff --git a/rust/src/builder/mod.rs b/rust/src/builder/mod.rs new file mode 100644 index 0000000..af75ddd --- /dev/null +++ b/rust/src/builder/mod.rs @@ -0,0 +1 @@ +pub mod docker; \ No newline at end of file diff --git a/rust/src/executor/docker.rs b/rust/src/executor/docker.rs new file mode 100644 index 0000000..2d56d2e --- /dev/null +++ b/rust/src/executor/docker.rs @@ -0,0 +1,5 @@ +use std::process + +pub fn run(image: String, name: String, config: Runtime) { + +} diff --git a/rust/src/executor/mod.rs b/rust/src/executor/mod.rs new file mode 100644 index 0000000..af75ddd --- /dev/null +++ b/rust/src/executor/mod.rs @@ -0,0 +1 @@ +pub mod docker; \ No newline at end of file diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 695db72..5597289 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -1,3 +1,6 @@ + +mod builder; + use std::env; use std::error::Error; use std::fs::File; @@ -6,7 +9,6 @@ use std::io; use std::io::prelude::*; use std::path::Path; - #[derive(Debug)] pub struct Runtime { pub replicas: Option,