diff options
Diffstat (limited to 'main/api')
-rw-r--r-- | main/api/src/mill/api/IO.scala | 33 | ||||
-rw-r--r-- | main/api/src/mill/api/PathRef.scala | 2 | ||||
-rw-r--r-- | main/api/src/mill/api/StreamSupport.scala | 38 |
3 files changed, 40 insertions, 33 deletions
diff --git a/main/api/src/mill/api/IO.scala b/main/api/src/mill/api/IO.scala index 8fa5003d..135a26b0 100644 --- a/main/api/src/mill/api/IO.scala +++ b/main/api/src/mill/api/IO.scala @@ -6,22 +6,7 @@ import java.io.{InputStream, OutputStream} * Misc IO utilities, eventually probably should be pushed upstream into * ammonite-ops */ -object IO { - - /** - * Pump the data from the `src` stream into the `dest` stream. - */ - def stream(src: InputStream, dest: OutputStream): Unit = { - val buffer = new Array[Byte](4096) - while ({ - src.read(buffer) match { - case -1 => false - case n => - dest.write(buffer, 0, n) - true - } - }) () - } +object IO extends StreamSupport { /** * Unpacks the given `src` path into the context specific destination directory. @@ -52,19 +37,3 @@ object IO { PathRef(ctx.dest / dest) } } - -import java.io.ByteArrayInputStream - -/** - * A dummy input stream containing an empty byte array. - */ -object DummyInputStream extends ByteArrayInputStream(Array()) - -/** - * A dummy output stream that does nothing with what it consumes (think of it as `/dev/null`). - */ -object DummyOutputStream extends java.io.OutputStream { - override def write(b: Int): Unit = () - override def write(b: Array[Byte]): Unit = () - override def write(b: Array[Byte], off: Int, len: Int): Unit = () -} diff --git a/main/api/src/mill/api/PathRef.scala b/main/api/src/mill/api/PathRef.scala index 29b2ee3c..f2312ba8 100644 --- a/main/api/src/mill/api/PathRef.scala +++ b/main/api/src/mill/api/PathRef.scala @@ -38,7 +38,7 @@ object PathRef { digest.update(value.toByte) } else if (jnio.Files.isReadable(path.toNIO)) { val is = os.read.inputStream(path) - IO.stream(is, digestOut) + StreamSupport.stream(is, digestOut) is.close() } } diff --git a/main/api/src/mill/api/StreamSupport.scala b/main/api/src/mill/api/StreamSupport.scala new file mode 100644 index 00000000..82c845a2 --- /dev/null +++ b/main/api/src/mill/api/StreamSupport.scala @@ -0,0 +1,38 @@ +package mill.api + +import java.io.{ByteArrayInputStream, InputStream, OutputStream} + +/** + * A dummy input stream containing an empty byte array. + */ +object DummyInputStream extends ByteArrayInputStream(Array()) + +/** + * A dummy output stream that does nothing with what it consumes (think of it as `/dev/null`). + */ +object DummyOutputStream extends OutputStream { + override def write(b: Int): Unit = () + override def write(b: Array[Byte]): Unit = () + override def write(b: Array[Byte], off: Int, len: Int): Unit = () +} + +trait StreamSupport { + + /** + * Pump the data from the `src` stream into the `dest` stream. + */ + def stream(src: InputStream, dest: OutputStream): Unit = { + val buffer = new Array[Byte](4096) + while ({ + src.read(buffer) match { + case -1 => false + case n => + dest.write(buffer, 0, n) + true + } + }) () + } + +} + +private[api] object StreamSupport extends StreamSupport
\ No newline at end of file |