使用自动输入运行交互式流程

时间:2016-08-21 13:02:47

标签: scala input io

我想运行一个需要用户输入的流程。它可能只是输入密码或回答多个问题。我事先知道所有可能的问题但不是订单。

这是一次天真的尝试:

type Line = String

def runAuto(cmd: String, handlers: Map[Line, OutputStream => Unit]): Unit = {

 cmd.run(new ProcessIO(
   _,
   stdout => {
     val bs = new BufferedSource(stdout)
     for (line <- bs.getLines()) {
       handlers.get(line.trim) match {
         case Some(handler) => handler(stdin) // <- hypothetical
         case _             => println(line)
       }
     } 
     bs.close()
   },
   stderr => {
     val bs = new BufferedSource(stderr)
     bs.getLines().foreach(err => println(s"ERR: $err"))
     bs.close()
   }
 )) 

}

主要问题是:我在处理标准输出时不知道如何访问标准输入。

0 个答案:

没有答案