home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dist-packages / DistUpgrade / DistUpgradeApport.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  3.0 KB  |  90 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import os
  5. import os.path as os
  6. import logging
  7. import subprocess
  8. import sys
  9. import gettext
  10. import errno
  11.  
  12. def apport_crash(type, value, tb):
  13.     logging.debug('running apport_crash()')
  14.     
  15.     try:
  16.         apport_excepthook = apport_excepthook
  17.         import apport_python_hook
  18.         Report = Report
  19.         import apport.report
  20.     except ImportError:
  21.         e = None
  22.         logging.error("failed to import apport python module, can't report bug: %s" % e)
  23.         return False
  24.  
  25.     sys.argv[0] = '/usr/bin/update-manager'
  26.     apport_excepthook(type, value, tb)
  27.     if os.path.exists('/var/crash/_usr_bin_update-manager.0.crash'):
  28.         report = Report()
  29.         for f in os.listdir('/var/log/dist-upgrade/'):
  30.             report[f.replace('.', '').replace('-', '')] = (open(os.path.join('/var/log/dist-upgrade', f)),)
  31.         
  32.         report.add_to_existing('/var/crash/_usr_bin_update-manager.0.crash')
  33.     
  34.     return True
  35.  
  36.  
  37. def apport_pkgfailure(pkg, errormsg):
  38.     logging.debug('running apport_pkgfailure() %s: %s', pkg, errormsg)
  39.     LOGDIR = '/var/log/dist-upgrade/'
  40.     s = '/usr/share/apport/package_hook'
  41.     if gettext.dgettext('dpkg', 'dependency problems - leaving unconfigured') in errormsg:
  42.         return False
  43.     if os.strerror(errno.ENOSPC) in errormsg:
  44.         logging.debug('dpkg error because of full disk, not reporting against %s ' % pkg)
  45.         return False
  46.     if os.path.exists(s):
  47.         
  48.         try:
  49.             p = subprocess.Popen([
  50.                 s,
  51.                 '-p',
  52.                 pkg,
  53.                 '-l',
  54.                 LOGDIR], stdin = subprocess.PIPE)
  55.             p.stdin.write('ErrorMessage: %s\n' % errormsg)
  56.             p.stdin.close()
  57.         except Exception:
  58.             os.strerror(errno.ENOSPC) in errormsg
  59.             e = os.strerror(errno.ENOSPC) in errormsg
  60.             gettext.dgettext('dpkg', 'dependency problems - leaving unconfigured') in errormsg
  61.             logging.warning('Failed to run apport (%s)' % e)
  62.             return False
  63.  
  64.         return True
  65.     return False
  66.  
  67.  
  68. def run_apport():
  69.     ''' run apport, check if we have a display '''
  70.     if 'RELEASE_UPRADER_NO_APPORT' in os.environ:
  71.         logging.debug('RELEASE_UPRADER_NO_APPORT env set')
  72.         return False
  73.     if 'DISPLAY' in os.environ:
  74.         for p in [
  75.             '/usr/share/apport/apport-gtk',
  76.             '/usr/share/apport/apport-qt']:
  77.             if os.path.exists(p):
  78.                 ret = subprocess.call(p)
  79.                 return ret == 0
  80.         
  81.     elif os.path.exists('/usr/bin/apport-cli'):
  82.         return subprocess.call('/usr/bin/apport-cli') == 0
  83.     'RELEASE_UPRADER_NO_APPORT' in os.environ
  84.     logging.debug("can't find apport")
  85.     return False
  86.  
  87. if __name__ == '__main__':
  88.     apport_crash(None, None, None)
  89.  
  90.