home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2010 November / maximum-cd-2010-11.iso / DiscContents / calibre-0.7.13.msi / file_2403 (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2010-08-06  |  3.1 KB  |  83 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import distutils
  5. import os
  6. from setuptools import Command
  7. from distutils.util import convert_path
  8. from distutils import log
  9. from distutils.errors import *
  10. from setuptools.command.setopt import edit_config, option_base, config_file
  11.  
  12. def shquote(arg):
  13.     for c in ('"', "'", '\\', '#'):
  14.         if c in arg:
  15.             return repr(arg)
  16.     
  17.     if arg.split() != [
  18.         arg]:
  19.         return repr(arg)
  20.     return arg
  21.  
  22.  
  23. class alias(option_base):
  24.     description = 'define a shortcut to invoke one or more commands'
  25.     command_consumes_arguments = True
  26.     user_options = [
  27.         ('remove', 'r', 'remove (unset) the alias')] + option_base.user_options
  28.     boolean_options = option_base.boolean_options + [
  29.         'remove']
  30.     
  31.     def initialize_options(self):
  32.         option_base.initialize_options(self)
  33.         self.args = None
  34.         self.remove = None
  35.  
  36.     
  37.     def finalize_options(self):
  38.         option_base.finalize_options(self)
  39.         if self.remove and len(self.args) != 1:
  40.             raise DistutilsOptionError('Must specify exactly one argument (the alias name) when using --remove')
  41.         len(self.args) != 1
  42.  
  43.     
  44.     def run(self):
  45.         aliases = self.distribution.get_option_dict('aliases')
  46.         if not self.args:
  47.             print 'Command Aliases'
  48.             print '---------------'
  49.             for alias in aliases:
  50.                 print 'setup.py alias', format_alias(alias, aliases)
  51.             
  52.             return None
  53.         if len(self.args) == 1:
  54.             (alias,) = self.args
  55.             if self.remove:
  56.                 command = None
  57.             elif alias in aliases:
  58.                 print 'setup.py alias', format_alias(alias, aliases)
  59.                 return None
  60.             print 'No alias definition found for %r' % alias
  61.             return None
  62.         len(self.args) == 1
  63.         alias = self.args[0]
  64.         command = ' '.join(map(shquote, self.args[1:]))
  65.         edit_config(self.filename, {
  66.             'aliases': {
  67.                 alias: command } }, self.dry_run)
  68.  
  69.  
  70.  
  71. def format_alias(name, aliases):
  72.     (source, command) = aliases[name]
  73.     if source == config_file('global'):
  74.         source = '--global-config '
  75.     elif source == config_file('user'):
  76.         source = '--user-config '
  77.     elif source == config_file('local'):
  78.         source = ''
  79.     else:
  80.         source = '--filename=%r' % source
  81.     return source + name + ' ' + command
  82.  
  83.