mirror of https://github.com/sbt/sbt.git
18 lines
613 B
Scala
18 lines
613 B
Scala
package sbt.internal
|
|
|
|
import java.lang.{ ProcessBuilder => JProcessBuilder }
|
|
|
|
private[sbt] object InheritInput {
|
|
def apply(p: JProcessBuilder): Boolean = (redirectInput, inherit) match {
|
|
case (Some(m), Some(f)) =>
|
|
m.invoke(p, f); true
|
|
case _ => false
|
|
}
|
|
|
|
private[this] val pbClass = Class.forName("java.lang.ProcessBuilder")
|
|
private[this] val redirectClass = pbClass.getClasses find (_.getSimpleName == "Redirect")
|
|
|
|
private[this] val redirectInput = redirectClass map (pbClass.getMethod("redirectInput", _))
|
|
private[this] val inherit = redirectClass map (_ getField "INHERIT" get null)
|
|
}
|