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.
10 if len(sys
.argv
) != 5:
22 if dir == "" or dir == "-d" or not os
.path
.isdir(dir):
23 print "directory is unexistent."
27 files
= os
.walk(dir).next()[2]
31 vlist
.append(i
.split("_")[0])
41 if ver
== "" or ver
== "-v" or vlist
.count(ver
) == 0:
42 print "version is unexistent."
47 for i
in range(vlist
.index(ver
)+1):
48 filelist
.append(files
[i
])
52 p
= re
.compile(r
'<[\w\s!-]* \(\) [\w\s!-]*>')
54 for i
in file(fname
,'r').read().splitlines():
58 m
=line
[m
.start():m
.end()]
59 if allname
[1].count(m
) == 0:
60 allname
[0].append(line
)
63 for i
in filelist
[0:-1]:
67 for i
in file(dir+'/'+filelist
[-1],'r').read().splitlines():
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
)
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")