]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Python/Python-2.7.2/Tools/scripts/cvsfiles.py
EmbeddedPkg: Extend NvVarStoreFormattedLib LIBRARY_CLASS
[mirror_edk2.git] / AppPkg / Applications / Python / Python-2.7.2 / Tools / scripts / cvsfiles.py
1 #! /usr/bin/env python
2
3 """Print a list of files that are mentioned in CVS directories.
4
5 Usage: cvsfiles.py [-n file] [directory] ...
6
7 If the '-n file' option is given, only files under CVS that are newer
8 than the given file are printed; by default, all files under CVS are
9 printed. As a special case, if a file does not exist, it is always
10 printed.
11 """
12
13 import os
14 import sys
15 import stat
16 import getopt
17
18 cutofftime = 0
19
20 def main():
21 try:
22 opts, args = getopt.getopt(sys.argv[1:], "n:")
23 except getopt.error, msg:
24 print msg
25 print __doc__,
26 return 1
27 global cutofftime
28 newerfile = None
29 for o, a in opts:
30 if o == '-n':
31 cutofftime = getmtime(a)
32 if args:
33 for arg in args:
34 process(arg)
35 else:
36 process(".")
37
38 def process(dir):
39 cvsdir = 0
40 subdirs = []
41 names = os.listdir(dir)
42 for name in names:
43 fullname = os.path.join(dir, name)
44 if name == "CVS":
45 cvsdir = fullname
46 else:
47 if os.path.isdir(fullname):
48 if not os.path.islink(fullname):
49 subdirs.append(fullname)
50 if cvsdir:
51 entries = os.path.join(cvsdir, "Entries")
52 for e in open(entries).readlines():
53 words = e.split('/')
54 if words[0] == '' and words[1:]:
55 name = words[1]
56 fullname = os.path.join(dir, name)
57 if cutofftime and getmtime(fullname) <= cutofftime:
58 pass
59 else:
60 print fullname
61 for sub in subdirs:
62 process(sub)
63
64 def getmtime(filename):
65 try:
66 st = os.stat(filename)
67 except os.error:
68 return 0
69 return st[stat.ST_MTIME]
70
71 if __name__ == '__main__':
72 main()