[Gd-chatter] r10903 - trunk/fundev/sources/environment/win32

hannes at gwydiondylan.org hannes at gwydiondylan.org
Tue Sep 5 19:34:18 CEST 2006


Author: hannes
Date: Tue Sep  5 19:34:17 2006
New Revision: 10903

Modified:
   trunk/fundev/sources/environment/win32/start.dylan
Log:
Job: fd
*support for /user-root command-line argument, which only sets
  OPEN_DYLAN_USER_ROOT, _INSTALL and _BUILD, preserving
  REGISTRIES and SOURCES
*debugging win32-environment with win32-environment is now easier,
  sources and registries can be used in both, but root, install and
  build must be set to somewhere else (which can be done via /user-root)

Modified: trunk/fundev/sources/environment/win32/start.dylan
==============================================================================
--- trunk/fundev/sources/environment/win32/start.dylan	(original)
+++ trunk/fundev/sources/environment/win32/start.dylan	Tue Sep  5 19:34:17 2006
@@ -25,7 +25,8 @@
 
 define method maybe-set-roots
     (#key personal-root :: false-or(<directory-locator>),
-          system-root :: false-or(<directory-locator>))
+          system-root :: false-or(<directory-locator>),
+          user-root :: false-or(<directory-locator>))
  => ()
   local method set-variable
             (variable :: <string>, directory :: <directory-locator>,
@@ -46,7 +47,16 @@
       let subdirectories = directory-info.tail;
       set-variable(variable, system-root, subdirectories)
     end
-  end
+  end;
+  if (user-root)
+    for (directory-info :: <list> in $personal-directories)
+      let variable       = directory-info.head;
+      let subdirectories = directory-info.tail;
+      if (~ any?(curry(\=, "sources"), subdirectories))
+        set-variable(variable, user-root, subdirectories)
+      end;
+    end;
+  end;
 end method maybe-set-roots;
 
 define method process-arguments
@@ -54,6 +64,7 @@
  => (filename :: false-or(<file-locator>))
   let personal-root = #f;
   let system-root   = #f;
+  let user-root     = #f;
   let filename      = #f;
   let arguments     = as(<deque>, arguments);
   while (~empty?(arguments))
@@ -61,7 +72,8 @@
     if (argument[0] == '/')
       select (copy-sequence(argument, start: 1) by \=)
         "personal" => personal-root := as(<directory-locator>, pop(arguments));
-        "system"   => system-root   := as(<directory-locator>, pop(arguments));
+        "user-root" => user-root    := as(<directory-locator>, pop(arguments));
+        "system" => system-root     := as(<directory-locator>, pop(arguments));
         otherwise  => #f;
       end
     else
@@ -77,7 +89,8 @@
   end;
   if (release-internal?())
     maybe-set-roots(personal-root: personal-root,
-                    system-root:   system-root)
+                    system-root:   system-root,
+                    user-root:     user-root)
   end;
   filename
 end method process-arguments;



More information about the chatter mailing list