changeset 5482:6b5f592edd98

Add symlink and map_find_files.
author Jan Nieuwenhuizen <janneke@gnu.org>
date Thu, 20 Aug 2009 14:36:05 +0200
parents df03d0971b5d
children 3cc4f9ac707f
files gub/commands.py gub/context.py gub/loggedos.py gub/runner.py
diffstat 4 files changed, 35 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/gub/commands.py	Thu Aug 20 14:35:30 2009 +0200
+++ b/gub/commands.py	Thu Aug 20 14:36:05 2009 +0200
@@ -85,6 +85,17 @@
     def execute (self, logger):
         loggedos.copy2 (logger, self.src, self.dest)
 
+class Link (SerializedCommand):
+    def __init__ (self, src, dest):
+        self.src = src
+        self.dest = dest
+    def checksum (self, hasher):
+        hasher (self.__class__.__name__)
+        hasher (self.src)
+        hasher (self.dest)
+    def execute (self, logger):
+        loggedos.link (logger, self.src, self.dest)
+
 class Symlink (SerializedCommand):
     def __init__ (self, src, dest):
         self.src = src
@@ -172,14 +183,16 @@
 
 class MapLocate (SerializedCommand):
     def __init__ (self, func, directory, pattern,
-                  must_happen=False, silent=False):
+                  must_happen=False, silent=False,
+                  find_func=misc.locate_files):
         self.func = func
+        self.find_func = find_func
         self.directory = directory
         self.pattern = pattern
         self.must_happen = must_happen
         self.silent = silent
     def execute (self, logger):
-        files = misc.locate_files (self.directory, self.pattern)
+        files = self.find_func (self.directory, self.pattern)
         message = 'MapLocate[%(directory)s] no files matching pattern: %(pattern)s\n' % self.__dict__
         logger.write_log (message, 'harmless')
         if self.must_happen and files == []:
@@ -358,7 +371,7 @@
             noconfigure = ' --help'
             if '--noconfigure' in s:
                 noconfigure = ' --noconfigure' + noconfigure
-            self.system ('cd %(autodir)s && NOCONFIGURE=1 dash autogen.sh %(noconfigure)s' % locals (),
+            self.system ('cd %(autodir)s && NOCONFIGURE=1 sh autogen.sh %(noconfigure)s' % locals (),
                          logger)
         else:
             libtoolize = misc.path_find (PATH, 'libtoolize')
--- a/gub/context.py	Thu Aug 20 14:35:30 2009 +0200
+++ b/gub/context.py	Thu Aug 20 14:36:05 2009 +0200
@@ -219,9 +219,11 @@
             str = self.expand (str, env)
         return self.runner.dump (str, name, mode=mode, permissions=permissions)
     
-    def map_locate (self, func, directory, pattern, **kwargs):
-        return self.runner.map_locate (func, self.expand (directory),
-                                       pattern, **kwargs)
+    def map_find_files (self, func, directory, pattern, must_happen=False, silent=False, find_func=misc.find_files):
+        return self.runner.map_find_files (func, self.expand (directory), pattern, must_happen, silent, find_func)
+
+    def map_locate (self, func, directory, pattern, must_happen=False, silent=False, find_func=misc.locate_files):
+        return self.runner.map_locate (func, self.expand (directory), pattern, must_happen, silent, find_func)
 
     def copy (self, src, dest, env={}):
         return self.runner.copy (self.expand (src, env=env), self.expand (dest, env=env))
@@ -232,8 +234,11 @@
     def chmod (self, file, mode, env={}):
         return self.runner.chmod (self.expand (file, env=env), mode)
 
-    def symlink (self, src, dest, env={}):
-        return self.runner.symlink (self.expand (src, env=env), self.expand (dest, env=env))
+    def link (self, src, dest, env={}): 
+       return self.runner.link (self.expand (src, env=env), self.expand (dest, env=env))
+
+    def symlink (self, src, dest, env={}): 
+       return self.runner.symlink (self.expand (src, env=env), self.expand (dest, env=env))
 
     def rename (self, src, dest, env={}):
         return self.runner.rename (self.expand (src, env=env), self.expand (dest, env=env))
--- a/gub/loggedos.py	Thu Aug 20 14:35:30 2009 +0200
+++ b/gub/loggedos.py	Thu Aug 20 14:36:05 2009 +0200
@@ -52,6 +52,7 @@
                    'makedirs': os.makedirs,
                    'copy2': shutil.copy2,
                    'remove': os.remove,
+                   'link': os.link,
                    'symlink': os.symlink,
                    'rename': os.rename,
                    'read_pipe': misc.read_pipe}.items ()):
--- a/gub/runner.py	Thu Aug 20 14:35:30 2009 +0200
+++ b/gub/runner.py	Thu Aug 20 14:36:05 2009 +0200
@@ -113,12 +113,18 @@
     def shadow_tree (self, src, target, soft=False):
         return self._execute (commands.ShadowTree (src, target, soft))
 
-    def map_locate (self, func, directory, pattern, **kwargs):
-        return self._execute (commands.MapLocate (func, directory, pattern, **kwargs))
+    def map_find_files (self, func, directory, pattern, must_happen=False, silent=False, find_func=misc.find_files):
+        return self._execute (commands.MapLocate (func, directory, pattern, must_happen, silent, find_func))
+
+    def map_locate (self, func, directory, pattern, must_happen=False, silent=False, find_func=misc.locate_files):
+        return self._execute (commands.MapLocate (func, directory, pattern, must_happen, silent, find_func))
 
     def copy (self, src, dest):
         return self._execute (commands.Copy (src, dest))
 
+    def link (self, src, dest):
+        return self._execute (commands.Link (src, dest))
+
     def symlink (self, src, dest):
         return self._execute (commands.Symlink (src, dest))