src/Pure/System/isabelle_process.scala
changeset 62545 8ebffdaf2ce2
parent 62309 96c9a259d275
child 62548 f8ebb715e06d
equal deleted inserted replaced
62544:efa178abe023 62545:8ebffdaf2ce2
     9 
     9 
    10 object Isabelle_Process
    10 object Isabelle_Process
    11 {
    11 {
    12   def apply(
    12   def apply(
    13     receiver: Prover.Message => Unit = Console.println(_),
    13     receiver: Prover.Message => Unit = Console.println(_),
    14     prover_args: String = ""): Isabelle_Process =
    14     prover_args: List[String] = Nil): Isabelle_Process =
    15   {
    15   {
    16     val system_channel = System_Channel()
    16     val system_channel = System_Channel()
    17     val system_process =
    17     val system_process =
    18       try {
    18       try {
    19         val script =
    19         val process =
    20           File.shell_quote(Isabelle_System.getenv_strict("ISABELLE_PROCESS")) +
    20           Bash.process("\"$ISABELLE_PROCESS\" -P " + File.bash_escape(system_channel.server_name) +
    21             " -P " + system_channel.server_name +
    21             " " + File.bash_escape(prover_args))
    22             (if (prover_args == "") "" else " " + prover_args)
       
    23         val process = Bash.process(null, null, false, "-c", script)
       
    24         process.stdin.close
    22         process.stdin.close
    25         process
    23         process
    26       }
    24       }
    27       catch { case exn @ ERROR(_) => system_channel.accepted(); throw exn }
    25       catch { case exn @ ERROR(_) => system_channel.accepted(); throw exn }
    28 
    26