home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / bin / ubiquity < prev    next >
Encoding:
Text File  |  2007-04-12  |  1.7 KB  |  67 lines

  1. #! /usr/bin/python
  2.  
  3. # Wrapper script to run Ubiquity as root using the appropriate privilege
  4. # escalation method for the frontend.
  5.  
  6. import sys
  7. import os
  8.  
  9. sys.path.insert(0, '/usr/lib/ubiquity')
  10.  
  11. def main():
  12.     newargv = []
  13.     desktop = None
  14.     frontend = None
  15.     toexec = []
  16.  
  17.     i = 1
  18.     while i < len(sys.argv):
  19.         if sys.argv[i] == '--desktop':
  20.             desktop = sys.argv[i + 1]
  21.             i += 2
  22.             # strip option and argument from newargv
  23.             continue
  24.         elif not sys.argv[i].startswith('-'):
  25.             frontend = sys.argv[i]
  26.         newargv.append(sys.argv[i])
  27.         i += 1
  28.  
  29.     if os.getuid() == 0:
  30.         # no privilege escalation required
  31.         pass
  32.     else:
  33.         if frontend is None:
  34.             # Try to detect which frontend will be used by looking for a
  35.             # frontend module.
  36.             import imp
  37.             import ubiquity.frontend
  38.             frontend_names = ['gtkui', 'kde-ui']
  39.             for f in frontend_names:
  40.                 try:
  41.                     imp.find_module(f, ubiquity.frontend.__path__)
  42.                     frontend = f
  43.                     break
  44.                 except ImportError:
  45.                     pass
  46.  
  47.         if frontend == 'gtkui':
  48.             toexec = ['gksudo']
  49.             if desktop:
  50.                 toexec.extend(['--desktop', desktop])
  51.             toexec.append('--')
  52.         elif frontend == 'kde-ui':
  53.             toexec = ['kdesu', '--nonewdcop', '--']
  54.         else:
  55.             toexec = ['sudo']
  56.  
  57.     toexec.append('/usr/lib/ubiquity/bin/ubiquity')
  58.     toexec.extend(newargv)
  59.  
  60.     if 'UBIQUITY_WRAPPER_DEBUG' in os.environ:
  61.         print >>sys.stderr, toexec
  62.     os.execvp(toexec[0], toexec)
  63.     sys.exit(127)
  64.  
  65. if __name__ == '__main__':
  66.     main()
  67.