src/Pure/System/isabelle_system.scala
changeset 82706 e9b9af6da795
parent 82276 d22e9c5b5dc6
child 82708 e43ef311d595
--- a/src/Pure/System/isabelle_system.scala	Sat Jun 14 11:45:56 2025 +0200
+++ b/src/Pure/System/isabelle_system.scala	Sat Jun 14 14:31:54 2025 +0200
@@ -30,22 +30,24 @@
 
   object No_Env extends Env(JMap.of())
 
-  def settings(putenv: List[(String, String)] = Nil): JMap[String, String] = {
-    val env0 = isabelle.setup.Environment.settings()
-    if (putenv.isEmpty) env0
-    else {
-      val env = new HashMap(env0)
-      for ((a, b) <- putenv) env.put(a, b)
-      env
+  object Settings {
+    def env(putenv: List[(String, String)] = Nil): JMap[String, String] = {
+      val env0 = isabelle.setup.Environment.settings()
+      if (putenv.isEmpty) env0
+      else {
+        val env = new HashMap(env0)
+        for ((a, b) <- putenv) env.put(a, b)
+        env
+      }
     }
+
+    def apply(putenv: List[(String, String)] = Nil): Settings_Env =
+      new Env(env(putenv = putenv))
   }
 
-  def settings_env(putenv: List[(String, String)] = Nil): Settings_Env =
-    new Env(settings(putenv = putenv))
+  def getenv(name: String, env: Settings = Settings()): String = env.get(name)
 
-  def getenv(name: String, env: Settings = settings_env()): String = env.get(name)
-
-  def getenv_strict(name: String, env: Settings = settings_env()): String =
+  def getenv_strict(name: String, env: Settings = Settings()): String =
     proper_string(getenv(name, env)) getOrElse
       error("Undefined Isabelle environment variable: " + quote(name))
 
@@ -413,7 +415,7 @@
     description: String = "",
     ssh: SSH.System = SSH.Local,
     cwd: Path = Path.current,
-    env: JMap[String, String] = settings(),  // ignored for remote ssh
+    env: JMap[String, String] = Settings.env(),  // ignored for remote ssh
     redirect: Boolean = false,
     input: String = "",
     progress_stdout: String => Unit = (_: String) => (),