forked from smani/cc2git
-
Notifications
You must be signed in to change notification settings - Fork 0
/
listsymlinks.py
63 lines (56 loc) · 1.94 KB
/
listsymlinks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#! /usr/bin/python
__author__="langiewi_m"
__date__ ="$Jun 25, 2010 10:25:58 AM$"
import os
import os.path
from pprint import pprint
from time import time
def lsld_walk((ldonieistniejacych, ldolinkow, ldokatalogow, ldoplikow), dir,files):
print "lsld_walk", dir
for f in files:
ff = os.path.abspath(os.path.join(dir, f))
if os.path.islink(ff):
rl = os.path.abspath(os.path.join(os.path.dirname(ff), os.readlink(ff)))
if not os.path.exists(rl):
ldonieistniejacych.append((ff, rl))
elif os.path.islink(rl):
ldolinkow.append((ff, rl))
elif os.path.isdir(rl):
ldokatalogow.append((ff, rl))
elif os.path.isfile(rl):
ldoplikow.append((ff, rl))
else:
print ff, rl
raise Exception
def usunniewazne(listalinkow):
wynik = []
for (src, dst) in listalinkow:
if src.find("lost+found") != -1:
continue
if src.find("vobs/porta") != -1 and dst.find("vobs/porta") != -1:
continue
wynik.append((src,dst))
return wynik
def listsymlinks(top):
ldonieistniejacych = []
ldolinkow = []
ldokatalogow = []
ldoplikow = []
os.path.walk(top, lsld_walk, (ldonieistniejacych, ldolinkow, ldokatalogow, ldoplikow))
ldonieistniejacych = usunniewazne(ldonieistniejacych)
ldolinkow = usunniewazne(ldolinkow)
ldokatalogow = usunniewazne(ldokatalogow)
ldoplikow = usunniewazne(ldoplikow)
print "Linki do nieistniejacych miejsc:"
pprint(ldonieistniejacych)
print "Linki do linkow:"
pprint(ldolinkow)
print "Linki do katalogow:"
pprint(ldokatalogow)
print "Linki do plikow:"
pprint(ldoplikow)
if __name__ == "__main__":
starttime = time()
listsymlinks("/view/LANGIEWI_M_PORTA_BAS_052_MAINT_PREINT/vobs/porta")
endtime = time()
print "calkowity czas dzialania:", endtime - starttime