add debug
[kps.git] / kps_web / first-time.py
blobab1f0eee02b6a9c81df3c1d3e02a9e05839471aa
1 #!/usr/bin/python
3 import sys,os
5 usage='''
6 Usage: python first-time.py -v [num] -d [source path]
7 -v : kernel version, script will get the first time committer of this release.
8 -d : kernel's committer info.
9 '''
10 if len(sys.argv) != 5:
11 print usage
12 sys.exit(1)
14 dir = ""
15 for i in sys.argv:
16 if dir == "-d":
17 dir = i
18 break
19 if i == "-d":
20 dir = "-d"
22 if dir == "" or dir == "-d" or not os.path.isdir(dir):
23 print "directory is unexistent."
24 print usage
25 sys.exit(1)
27 files = os.walk(dir).next()[2]
28 files.sort()
29 vlist = []
30 for i in files:
31 vlist.append(i.split("_")[0])
33 ver = ""
34 for i in sys.argv:
35 if ver == "-v":
36 ver = i
37 break
38 if i == "-v":
39 ver = "-v"
41 if ver == "" or ver == "-v" or vlist.count(ver) == 0:
42 print "version is unexistent."
43 print usage
44 sys.exit(1)
46 filelist = []
47 for i in range(vlist.index(ver)+1):
48 filelist.append(files[i])
50 allname = [[],[]]
51 import re
52 p = re.compile(r'<[\w\s!-]* \(\) [\w\s!-]*>')
53 def findfile(fname):
54 for i in file(fname,'r').read().splitlines():
55 line = i.strip()
56 m=p.search(line)
57 if m != None:
58 m=line[m.start():m.end()]
59 if allname[1].count(m) == 0:
60 allname[0].append(line)
61 allname[1].append(m)
63 for i in filelist[0:-1]:
64 findfile(dir+'/'+i)
66 newline = [[],[]]
67 for i in file(dir+'/'+filelist[-1],'r').read().splitlines():
68 line = i.strip()
69 m=p.search(line)
70 if m != None:
71 m=line[m.start():m.end()]
72 if allname[1].count(m) == 0 and newline[1].count(m) == 0:
73 newline[0].append(line)
74 newline[1].append(m)
76 #fd=file("result."+ver,"w")
78 p1=re.compile('\t [^<]* <')
79 p2=re.compile('\([a-zA-Z ]*\)')
80 for i in range(len(newline[1])):
81 m1=p1.search(newline[0][i])
82 m2=p2.search(newline[0][i])
83 if m1 != None and m2 != None:
84 print newline[0][i][m1.start()+2:]
86 #following code will support output to a file
87 #fd.write(newline[0][i][m1.start()+2:m1.end()-2]+"\t"+newline[1][i]+"\t"+newline[0][i][m2.start():m2.end()]+"\n")
88 #fd.close()