symbian-qemu-0.9.1-12/python-win32-2.6.1/Tools/Scripts/cvsfiles.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 #! /usr/bin/env python
       
     2 
       
     3 """Print a list of files that are mentioned in CVS directories.
       
     4 
       
     5 Usage: cvsfiles.py [-n file] [directory] ...
       
     6 
       
     7 If the '-n file' option is given, only files under CVS that are newer
       
     8 than the given file are printed; by default, all files under CVS are
       
     9 printed.  As a special case, if a file does not exist, it is always
       
    10 printed.
       
    11 """
       
    12 
       
    13 import os
       
    14 import sys
       
    15 import stat
       
    16 import getopt
       
    17 
       
    18 cutofftime = 0
       
    19 
       
    20 def main():
       
    21     try:
       
    22         opts, args = getopt.getopt(sys.argv[1:], "n:")
       
    23     except getopt.error, msg:
       
    24         print msg
       
    25         print __doc__,
       
    26         return 1
       
    27     global cutofftime
       
    28     newerfile = None
       
    29     for o, a in opts:
       
    30         if o == '-n':
       
    31             cutofftime = getmtime(a)
       
    32     if args:
       
    33         for arg in args:
       
    34             process(arg)
       
    35     else:
       
    36         process(".")
       
    37 
       
    38 def process(dir):
       
    39     cvsdir = 0
       
    40     subdirs = []
       
    41     names = os.listdir(dir)
       
    42     for name in names:
       
    43         fullname = os.path.join(dir, name)
       
    44         if name == "CVS":
       
    45             cvsdir = fullname
       
    46         else:
       
    47             if os.path.isdir(fullname):
       
    48                 if not os.path.islink(fullname):
       
    49                     subdirs.append(fullname)
       
    50     if cvsdir:
       
    51         entries = os.path.join(cvsdir, "Entries")
       
    52         for e in open(entries).readlines():
       
    53             words = e.split('/')
       
    54             if words[0] == '' and words[1:]:
       
    55                 name = words[1]
       
    56                 fullname = os.path.join(dir, name)
       
    57                 if cutofftime and getmtime(fullname) <= cutofftime:
       
    58                     pass
       
    59                 else:
       
    60                     print fullname
       
    61     for sub in subdirs:
       
    62         process(sub)
       
    63 
       
    64 def getmtime(filename):
       
    65     try:
       
    66         st = os.stat(filename)
       
    67     except os.error:
       
    68         return 0
       
    69     return st[stat.ST_MTIME]
       
    70 
       
    71 if __name__ == '__main__':
       
    72     main()