fun capture()

in src/main/kotlin/io/bazel/worker/IO.kt [50:68]


    fun capture(): IO {
      val stdErr = System.err
      val stdIn = BufferedInputStream(System.`in`)
      val stdOut = System.out
      val inputBuffer = ByteArrayInputStream(ByteArray(0))
      val captured = ByteArrayOutputStream()
      val outputBuffer = PrintStream(captured)

      // delegate the system defaults to capture execution information
      System.setErr(outputBuffer)
      System.setOut(outputBuffer)
      System.setIn(inputBuffer)

      return IO(stdIn, stdOut, captured) {
        System.setOut(stdOut)
        System.setIn(stdIn)
        System.setErr(stdErr)
      }
    }