src/Pure/System/cygwin.scala
changeset 34045 bc71778a327d
parent 34043 7129fab1fe4f
child 34203 dd2f49d88b47
--- a/src/Pure/System/cygwin.scala	Wed Dec 09 21:25:07 2009 +0100
+++ b/src/Pure/System/cygwin.scala	Wed Dec 09 21:55:14 2009 +0100
@@ -76,36 +76,23 @@
 
   /* Cygwin installation */
 
-  // old-style mount points (Cygwin 1.5)
-  private val CYGWIN_MOUNTS = "Software\\Cygnus Solutions\\Cygwin\\mounts v2"
-
-  // new-style setup (Cygwin 1.7)
   private val CYGWIN_SETUP1 = "Software\\Cygwin\\setup"
   private val CYGWIN_SETUP2 = "Software\\Wow6432Node\\Cygwin\\setup"
 
-  def config(): (String, String) =
+  def check_root(): String =
   {
-    val cygwin_root = java.lang.System.getenv("CYGWIN_ROOT")
-
-    (if (cygwin_root != null && cygwin_root != "") Some(cygwin_root) else None) orElse
-    query_registry(CYGWIN_SETUP1, "rootdir") orElse
-      query_registry(CYGWIN_SETUP2, "rootdir") match
-    {
-      case Some(root) => (root, "/cygdrive")
-      case None =>
-        val root =
-          query_registry(CYGWIN_MOUNTS + "\\/", "native") getOrElse "C:\\cygwin"
-        val cygdrive =
-          query_registry(CYGWIN_MOUNTS, "cygdrive prefix") getOrElse "cygdrive"
-        (root, cygdrive)
-    }
+    val root_env = java.lang.System.getenv("CYGWIN_ROOT")
+    val root =
+      if (root_env != null && root_env != "") root_env
+      else
+        query_registry(CYGWIN_SETUP1, "rootdir") orElse
+        query_registry(CYGWIN_SETUP2, "rootdir") getOrElse
+        error("Failed to determine Cygwin installation -- version 1.7 required")
+    val ok =
+      new File(root + "\\bin\\bash.exe").isFile &&
+      new File(root + "\\bin\\env.exe").isFile
+    if (!ok) error("Bad Cygwin installation: " + root)
+    root
   }
-
-
-  /* basic sanity check */
-
-  def check(root: String): Boolean =
-    new File(root + "\\bin\\bash.exe").isFile &&
-    new File(root + "\\bin\\env.exe").isFile
 }