Mercurial > cpython-lru_cache-weakref
view Tools/scripts/cvsfiles.py @ 28646:193b8aec00ce legacy-trunk
Changes from Jonathan Riehl to allow his pgen extension (PEP 269) to
work. This includes some more code that used to be part of pgen in
the main parser; I'm okay with that. I'll see if the Windows build
needs work next.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Apr 2003 14:55:42 +0000 |
| parents | 8a7a2f1f88f0 |
| children | 981fff7363b9 |
line wrap: on
line source
#! /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())
