symbian-qemu-0.9.1-12/python-2.6.1/Mac/Extras.install.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 """Recursively copy a directory but skip undesired files and
       
     2 directories (CVS, backup files, pyc files, etc)"""
       
     3 
       
     4 import sys
       
     5 import os
       
     6 import shutil
       
     7 
       
     8 verbose = 1
       
     9 debug = 0
       
    10 
       
    11 def isclean(name):
       
    12     if name == 'CVS': return 0
       
    13     if name == '.cvsignore': return 0
       
    14     if name == '.DS_store': return 0
       
    15     if name == '.svn': return 0
       
    16     if name.endswith('~'): return 0
       
    17     if name.endswith('.BAK'): return 0
       
    18     if name.endswith('.pyc'): return 0
       
    19     if name.endswith('.pyo'): return 0
       
    20     if name.endswith('.orig'): return 0
       
    21     return 1
       
    22 
       
    23 def copycleandir(src, dst):
       
    24     for cursrc, dirs, files in os.walk(src):
       
    25         assert cursrc.startswith(src)
       
    26         curdst = dst + cursrc[len(src):]
       
    27         if verbose:
       
    28             print "mkdir", curdst
       
    29         if not debug:
       
    30             if not os.path.exists(curdst):
       
    31                 os.makedirs(curdst)
       
    32         for fn in files:
       
    33             if isclean(fn):
       
    34                 if verbose:
       
    35                     print "copy", os.path.join(cursrc, fn), os.path.join(curdst, fn)
       
    36                 if not debug:
       
    37                     shutil.copy2(os.path.join(cursrc, fn), os.path.join(curdst, fn))
       
    38             else:
       
    39                 if verbose:
       
    40                     print "skipfile", os.path.join(cursrc, fn)
       
    41         for i in range(len(dirs)-1, -1, -1):
       
    42             if not isclean(dirs[i]):
       
    43                 if verbose:
       
    44                     print "skipdir", os.path.join(cursrc, dirs[i])
       
    45                 del dirs[i]
       
    46 
       
    47 def main():
       
    48     if len(sys.argv) != 3:
       
    49         sys.stderr.write("Usage: %s srcdir dstdir\n" % sys.argv[0])
       
    50         sys.exit(1)
       
    51     copycleandir(sys.argv[1], sys.argv[2])
       
    52 
       
    53 if __name__ == '__main__':
       
    54     main()