mirror of
https://github.com/python/cpython.git
synced 2024-12-01 11:15:56 +01:00
aaab30e00c
(with one small bugfix in bgen/bgen/scantools.py) This replaces string module functions with string methods for the stuff in the Tools directory. Several uses of string.letters etc. are still remaining.
72 lines
1.7 KiB
Python
Executable File
72 lines
1.7 KiB
Python
Executable File
#! /usr/bin/env python
|
|
|
|
"""Print a list of files that are mentioned in CVS directories.
|
|
|
|
Usage: cvsfiles.py [-n file] [directory] ...
|
|
|
|
If the '-n file' option is given, only files under CVS that are newer
|
|
than the given file are printed; by default, all files under CVS are
|
|
printed. As a special case, if a file does not exist, it is always
|
|
printed.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import stat
|
|
import getopt
|
|
|
|
cutofftime = 0
|
|
|
|
def main():
|
|
try:
|
|
opts, args = getopt.getopt(sys.argv[1:], "n:")
|
|
except getopt.error, msg:
|
|
print msg
|
|
print __doc__,
|
|
return 1
|
|
global cutofftime
|
|
newerfile = None
|
|
for o, a in opts:
|
|
if o == '-n':
|
|
cutofftime = getmtime(a)
|
|
if args:
|
|
for arg in args:
|
|
process(arg)
|
|
else:
|
|
process(".")
|
|
|
|
def process(dir):
|
|
cvsdir = 0
|
|
subdirs = []
|
|
names = os.listdir(dir)
|
|
for name in names:
|
|
fullname = os.path.join(dir, name)
|
|
if name == "CVS":
|
|
cvsdir = fullname
|
|
else:
|
|
if os.path.isdir(fullname):
|
|
if not os.path.islink(fullname):
|
|
subdirs.append(fullname)
|
|
if cvsdir:
|
|
entries = os.path.join(cvsdir, "Entries")
|
|
for e in open(entries).readlines():
|
|
words = e.split('/')
|
|
if words[0] == '' and words[1:]:
|
|
name = words[1]
|
|
fullname = os.path.join(dir, name)
|
|
if cutofftime and getmtime(fullname) <= cutofftime:
|
|
pass
|
|
else:
|
|
print fullname
|
|
for sub in subdirs:
|
|
process(sub)
|
|
|
|
def getmtime(filename):
|
|
try:
|
|
st = os.stat(filename)
|
|
except os.error:
|
|
return 0
|
|
return st[stat.ST_MTIME]
|
|
|
|
sys.exit(main())
|