diff --git a/Tools/scripts/cvsfiles.py b/Tools/scripts/cvsfiles.py index 21e72ee386e..5b691f61bb5 100755 --- a/Tools/scripts/cvsfiles.py +++ b/Tools/scripts/cvsfiles.py @@ -1,13 +1,35 @@ #! /usr/bin/env python -"""Create a list of files that are mentioned in CVS directories.""" +"""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 import string +cutofftime = 0 + def main(): - args = sys.argv[1:] + 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) @@ -32,8 +54,19 @@ def process(dir): words = string.split(e, '/') if words[0] == '' and words[1:]: name = words[1] - print os.path.join(dir, name) + fullname = os.path.join(dir, name) + if cutofftime and getmtime(fullname) <= cutofftime: + pass + else: + print fullname for sub in subdirs: process(sub) -main() +def getmtime(filename): + try: + st = os.stat(filename) + except os.error: + return 0 + return st[stat.ST_MTIME] + +sys.exit(main())