5
def pathsplit(p, rest=[]):
6
(h,t) = os.path.split(p)
7
if len(h) < 1: return [t]+rest
8
if len(t) < 1: return [h]+rest
9
return pathsplit(h,[t]+rest)
11
def commonpath(l1, l2, common=[]):
12
if len(l1) < 1: return (common, l1, l2)
13
if len(l2) < 1: return (common, l1, l2)
14
if l1[0] != l2[0]: return (common, l1, l2)
15
return commonpath(l1[1:], l2[1:], common+[l1[0]])
18
(common,l1,l2) = commonpath(pathsplit(p1), pathsplit(p2))
21
p = [ '../' * len(l1) ]
23
return os.path.join( *p )
25
fdupes = subprocess.Popen(['fdupes', '-r', '--sameline', '.'], stdout=subprocess.PIPE)
26
for l in fdupes.stdout:
30
target = relpath(os.path.dirname(dup), master)
32
os.symlink(target, dup)
33
print dup, '->', target