]> git.donarmstrong.com Git - lilypond.git/commitdiff
use file-renaming for all comparison data.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 31 Jan 2007 18:20:14 +0000 (19:20 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 31 Jan 2007 18:20:14 +0000 (19:20 +0100)
buildscripts/output-distance.py

index a3c4df5cbaf9ca52ee255e0a386e4d0bf6bdd512..631f8272d5b27eecff0a5c38cb35815d9dcf8772 100644 (file)
@@ -357,11 +357,18 @@ class FileLink:
 
         return self._distance
     
+    def source_file (self):
+        for ext in ('.ly', '.ly.txt'):
+            base = os.path.splitext (self.file_names[1])[0]
+            f = base + ext
+            if os.path.exists (f):
+                return f
+            
+        return ''
         
     def name (self):
         base = os.path.basename (self.file_names[1])
         base = os.path.splitext (base)[0]
-        
         base = hash_to_original_name.get (base, base)
         base = os.path.splitext (base)[0]
         return base
@@ -433,6 +440,8 @@ class FileCompareLink (FileLink):
         return s
 
 
+
+
 class GitFileCompareLink (FileCompareLink):
     def get_cell (self, oldnew):
         str = self.contents[oldnew]
@@ -563,12 +572,8 @@ class SignatureFileLink (FileLink):
             
         return d + orphan_distance
 
-    def source_file (self):
-        for ext in ('.ly', '.ly.txt'):
-            if os.path.exists (self.base_names[1] + ext):
-                return self.base_names[1] + ext
-        return ''
-    
+
+
     def add_file_compare (self, f1, f2):
         system_index = [] 
 
@@ -582,18 +587,6 @@ class SignatureFileLink (FileLink):
         self.base_names = (os.path.normpath (base1),
                            os.path.normpath (base2))
 
-        def note_original (match):
-            hash_to_original_name[os.path.basename (self.base_names[1])] = match.group (1)
-            return ''
-        
-        ## ugh: drop the .ly.txt
-        for ext in ('.ly', '.ly.txt'):
-            try:
-                re.sub (r'\\sourcefilename "([^"]+)"',
-                        note_original, open (base1 + ext).read ())
-            except IOError:
-                pass
-                
         s1 = read_signature_file (f1)
         s2 = read_signature_file (f2)
 
@@ -786,6 +779,20 @@ class ComparisonData:
         self.added = []
         self.file_links = {}
 
+    def read_sources (self):
+
+        ## ugh: drop the .ly.txt
+        for (key, val) in self.file_links.items ():
+            
+            def note_original (match, ln=val):
+                key = ln.name ()
+                hash_to_original_name[key] = match.group (1)
+                return ''
+
+            sf = val.source_file ()
+            re.sub (r'\\sourcefilename "([^"]+)"',
+                    note_original, open (sf).read ())
+        
     def compare_trees (self, dir1, dir2):
         self.compare_directories (dir1, dir2)
         
@@ -801,7 +808,11 @@ class ComparisonData:
                 self.compare_trees (d1, d2)
     
     def compare_directories (self, dir1, dir2):
-        for ext in ['signature', 'midi', 'log', 'profile', 'gittxt']:
+        for ext in ['signature',
+                    'midi',
+                    'log',
+                    'profile',
+                    'gittxt']:
             (paired, m1, m2) = paired_files (dir1, dir2, '*.' + ext)
 
             self.missing += [(dir1, m) for m in m1] 
@@ -943,6 +954,9 @@ class ComparisonData:
 def compare_trees (dir1, dir2, dest_dir, threshold):
     data = ComparisonData ()
     data.compare_trees (dir1, dir2)
+    data.read_sources ()
+
+    
     data.print_results (threshold)
 
     if os.path.isdir (dest_dir):