symbian-qemu-0.9.1-12/python-2.6.1/Mac/scripts/cachersrc.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 # Scan the tree passed as argv[0] for .rsrc files, skipping .rsrc.df.rsrc
       
     2 # files, and open these. The effect of this is to create the .rsrc.df.rsrc
       
     3 # cache files if needed.
       
     4 # These are needed on OSX: the .rsrc files are in reality AppleSingle-encoded
       
     5 # files. We decode the resources into a datafork-based resource file.
       
     6 
       
     7 import macresource
       
     8 import os
       
     9 import sys
       
    10 import getopt
       
    11 
       
    12 class NoArgsError(Exception):
       
    13     pass
       
    14 
       
    15 def handler((verbose, force), dirname, fnames):
       
    16     for fn in fnames:
       
    17         if fn[-5:] == '.rsrc' and fn[-13:] != '.rsrc.df.rsrc':
       
    18             if force:
       
    19                 try:
       
    20                     os.unlink(os.path.join(dirname, fn + '.df.rsrc'))
       
    21                 except IOError:
       
    22                     pass
       
    23             macresource.open_pathname(os.path.join(dirname, fn), verbose=verbose)
       
    24 
       
    25 def main():
       
    26     try:
       
    27         opts, args = getopt.getopt(sys.argv[1:], 'vf')
       
    28         if not args:
       
    29             raise NoArgsError
       
    30     except (getopt.GetoptError, NoArgsError):
       
    31         sys.stderr.write('Usage: cachersrc.py dirname ...\n')
       
    32         sys.exit(1)
       
    33     verbose = 0
       
    34     force = 0
       
    35     for o, v in opts:
       
    36         if o == '-v':
       
    37             verbose = 1
       
    38         if o == '-f':
       
    39             force = 1
       
    40     for dir in sys.argv[1:]:
       
    41         os.path.walk(dir, handler, (verbose, force))
       
    42 
       
    43 if __name__ == '__main__':
       
    44     main()