summaryrefslogtreecommitdiff
path: root/crashbox-worker/src/main/scala/io/crashbox/ci/build/ShellBuilders.scala
diff options
context:
space:
mode:
Diffstat (limited to 'crashbox-worker/src/main/scala/io/crashbox/ci/build/ShellBuilders.scala')
-rw-r--r--crashbox-worker/src/main/scala/io/crashbox/ci/build/ShellBuilders.scala33
1 files changed, 33 insertions, 0 deletions
diff --git a/crashbox-worker/src/main/scala/io/crashbox/ci/build/ShellBuilders.scala b/crashbox-worker/src/main/scala/io/crashbox/ci/build/ShellBuilders.scala
new file mode 100644
index 0000000..71bd683
--- /dev/null
+++ b/crashbox-worker/src/main/scala/io/crashbox/ci/build/ShellBuilders.scala
@@ -0,0 +1,33 @@
+package io.crashbox.ci
+package build
+
+import java.io.OutputStream
+import scala.concurrent.Future
+import scala.sys.process.{ Process, _ }
+import java.io.{ File, InputStream }
+import scala.concurrent.Future
+
+trait ShellBuilders extends Builders {
+
+ def pipe(is: InputStream, os: OutputStream) = {
+ var n = 0
+ val buffer = new Array[Byte](1024);
+ while ({n = is.read(buffer); n > -1}) {
+ os.write(buffer, 0, n);
+ }
+ os.close()
+ }
+
+ @deprecated("use git-specific execution context", "todo")
+ implicit private val ec = scala.concurrent.ExecutionContext.global
+
+ override def build(workdir: File, stdout: OutputStream, stderr: OutputStream): Future[Int] = {
+ def ignore(in: OutputStream): Unit = ()
+ val io = new ProcessIO(ignore, pipe(_, stdout), pipe(_, stderr))
+
+ Future{
+ Process("./crashbox", Some(workdir)).run(io).exitValue()
+ }
+ }
+
+}