src/Pure/System/isabelle_system.scala
changeset 43520 cec9b95fa35d
parent 43514 45cf8d5e109a
child 43606 e1a09c2a6248
equal deleted inserted replaced
43519:024bd7f5ee0f 43520:cec9b95fa35d
     4 Isabelle system support (settings environment etc.).
     4 Isabelle system support (settings environment etc.).
     5 */
     5 */
     6 
     6 
     7 package isabelle
     7 package isabelle
     8 
     8 
       
     9 import java.lang.System
     9 import java.util.regex.Pattern
    10 import java.util.regex.Pattern
    10 import java.util.Locale
    11 import java.util.Locale
    11 import java.io.{InputStream, FileInputStream, OutputStream, FileOutputStream, File,
    12 import java.io.{InputStream, FileInputStream, OutputStream, FileOutputStream, File,
    12   BufferedReader, InputStreamReader, BufferedWriter, OutputStreamWriter, IOException}
    13   BufferedReader, InputStreamReader, BufferedWriter, OutputStreamWriter, IOException}
    13 import java.awt.{GraphicsEnvironment, Font}
    14 import java.awt.{GraphicsEnvironment, Font}
    39 
    40 
    40   private val environment: Map[String, String] =
    41   private val environment: Map[String, String] =
    41   {
    42   {
    42     import scala.collection.JavaConversions._
    43     import scala.collection.JavaConversions._
    43 
    44 
    44     val env0 = Map(java.lang.System.getenv.toList: _*) +
    45     val env0 = Map(System.getenv.toList: _*) +
    45       ("THIS_JAVA" -> this_java())
    46       ("THIS_JAVA" -> this_java())
    46 
    47 
    47     val isabelle_home =
    48     val isabelle_home =
    48       if (this_isabelle_home != null) this_isabelle_home
    49       if (this_isabelle_home != null) this_isabelle_home
    49       else
    50       else
    50         env0.get("ISABELLE_HOME") match {
    51         env0.get("ISABELLE_HOME") match {
    51           case None | Some("") =>
    52           case None | Some("") =>
    52             val path = java.lang.System.getProperty("isabelle.home")
    53             val path = System.getProperty("isabelle.home")
    53             if (path == null || path == "") error("Unknown Isabelle home directory")
    54             if (path == null || path == "") error("Unknown Isabelle home directory")
    54             else path
    55             else path
    55           case Some(path) => path
    56           case Some(path) => path
    56         }
    57         }
    57 
    58 
    68             val i = entry.indexOf('=')
    69             val i = entry.indexOf('=')
    69             if (i <= 0) (entry -> "")
    70             if (i <= 0) (entry -> "")
    70             else (entry.substring(0, i) -> entry.substring(i + 1))
    71             else (entry.substring(0, i) -> entry.substring(i + 1))
    71           }
    72           }
    72         Map(entries: _*) +
    73         Map(entries: _*) +
    73           ("HOME" -> java.lang.System.getenv("HOME")) +
    74           ("HOME" -> System.getenv("HOME")) +
    74           ("PATH" -> java.lang.System.getenv("PATH"))
    75           ("PATH" -> System.getenv("PATH"))
    75       }
    76       }
    76   }
    77   }
    77 
    78 
    78 
    79 
    79   /* getenv */
    80   /* getenv */