mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	(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.
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			71 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())
 |