cinap_lenrekadd hg and python4bb9e2215 years agoHistory
72 lines · 1.7 KB · Python
RawDownload
#! /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 newerthan the given file are printed; by default, all files under CVS areprinted.  As a special case, if a file does not exist, it is alwaysprinted.""" import osimport sysimport statimport 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] if __name__ == '__main__':    main()