@@ -30,8 +30,14 @@ def main():
3030 except re .error as e :
3131 print (f"Regex error for pattern { r } : { e } " , file = sys .stderr )
3232
33- files1 = [str (p .relative_to (d1 )) for p in d1 .rglob ("*" ) if p .is_file ()]
34- files2 = [str (p .relative_to (d2 )) for p in d2 .rglob ("*" ) if p .is_file ()]
33+ if d1 .is_dir () and d2 .is_dir ():
34+ files1 = [str (p .relative_to (d1 )) for p in d1 .rglob ("*" ) if p .is_file ()]
35+ files2 = [str (p .relative_to (d2 )) for p in d2 .rglob ("*" ) if p .is_file ()]
36+ else :
37+ assert d1 .is_file (), d1
38+ assert d2 .is_file (), d2
39+ diff_files (patterns , d1 , d2 )
40+ return
3541
3642 set1 = set (files1 )
3743 set2 = set (files2 )
@@ -44,13 +50,17 @@ def main():
4450 elif f not in set1 :
4551 print (f"Only in { d2 } : { f } " )
4652 else :
47- a = replaceAll (patterns , p1 .read_text ()).splitlines (True )
48- b = replaceAll (patterns , p2 .read_text ()).splitlines (True )
49- if a != b :
50- p1_str = p1 .as_posix ()
51- p2_str = p2 .as_posix ()
52- for line in difflib .unified_diff (a , b , p1_str , p2_str , "" , "" , 2 ):
53- print (line , end = "" )
53+ diff_files (patterns , p1 , p2 )
54+
55+
56+ def diff_files (patterns , p1 , p2 ):
57+ a = replaceAll (patterns , p1 .read_text ()).splitlines (True )
58+ b = replaceAll (patterns , p2 .read_text ()).splitlines (True )
59+ if a != b :
60+ p1_str = p1 .as_posix ()
61+ p2_str = p2 .as_posix ()
62+ for line in difflib .unified_diff (a , b , p1_str , p2_str , "" , "" , 2 ):
63+ print (line , end = "" )
5464
5565
5666if __name__ == "__main__" :
0 commit comments