home *** CD-ROM | disk | FTP | other *** search
/ PC User 2004 November / PCU1104CD1.iso / software / online / files / jyte.exe / $TEMP / install.py
Encoding:
Python Source  |  2004-05-19  |  1.2 KB  |  52 lines

  1. # Copyright (C) 2004 JanRain, Inc.
  2. # All rights reserved
  3.  
  4. import zipfile
  5. import os
  6. import errno
  7.  
  8. from os.path import join, dirname, isdir, normpath, abspath
  9.  
  10. created_dirs = []
  11. def makeDir(name):
  12.     global created_dirs
  13.  
  14.     try:
  15.         os.makedirs(name)
  16.     except OSError, e:
  17.         if e.errno == errno.EEXIST:
  18.             assert isdir(name)
  19.         else:
  20.             raise
  21.  
  22.     created_dirs.append(name)
  23.  
  24. def extract(archive, target_path):
  25.     for filename in archive.namelist():
  26.         treat_as_dir = filename.endswith('/')
  27.  
  28.         target_name = abspath(join(target_path, normpath(filename)))
  29.         if treat_as_dir:
  30.             makeDir(target_name)
  31.         else:
  32.             makeDir(dirname(target_name))
  33.  
  34.             data = archive.read(filename)
  35.             out = file(target_name, 'wb')
  36.             out.write(data)
  37.             out.close()
  38.  
  39. if __name__ == '__main__':
  40.     import sys
  41.  
  42.     try:
  43.         unused_script, installer_file_name, target_path = sys.argv
  44.     except ValueError:
  45.         sys.stderr.write('%s <installer> <target directory>\n')
  46.         sys.exit(1)
  47.  
  48.     target_path = abspath(target_path)
  49.     archive = zipfile.ZipFile(installer_file_name, 'r')
  50.     archive.testzip()
  51.     extract(archive, target_path)
  52.