[Python-checkins] python/nondist/sandbox/setuptools/setuptools/command alias.py, 1.2, 1.3

pje@users.sourceforge.net pje at users.sourceforge.net
Fri Jul 8 17:11:26 CEST 2005


Update of /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/command
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2382/setuptools/command
Modified Files:
	alias.py 
Log Message:
Restructured the 'alias' command to take arguments instead of options, and
to display the definition of the named alias or of all aliases.
Index: alias.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/setuptools/command/alias.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- alias.py	8 Jul 2005 05:11:20 -0000	1.2
+++ alias.py	8 Jul 2005 15:11:19 -0000	1.3
@@ -3,37 +3,80 @@
 from distutils.util import convert_path
 from distutils import log
 from distutils.errors import *
-from setuptools.command.setopt import edit_config, option_base
+from setuptools.command.setopt import edit_config, option_base, config_file
 
 class alias(option_base):
 """Define a shortcut that invokes one or more commands"""
 
 description = "define a shortcut to invoke one or more commands"
+ command_consumes_arguments = True
 
 user_options = [
- ('alias=', 'a', 'the name of the new pseudo-command'),
- ('command=', 'c', 'command(s) and options to invoke when used'),
 ('remove', 'r', 'remove (unset) the alias'), 
 ] + option_base.user_options
 
 boolean_options = option_base.boolean_options + ['remove']
 
+
 def initialize_options(self):
 option_base.initialize_options(self)
- self.alias = None
- self.command = None
+ self.args = None
 self.remove = None
 
+
 def finalize_options(self):
 option_base.finalize_options(self)
- if self.alias is None:
- raise DistutilsOptionError("Must specify name (--alias/-a)")
- if self.command is None and not self.remove:
- raise DistutilsOptionError("Must specify --command or --remove")
+ if self.remove and len(self.args)<>1:
+ raise DistutilsOptionError(
+ "Must specify exactly one argument (the alias name) when "
+ "using --remove"
+ )
+
+
+
+
+
+
+
 
 def run(self):
- edit_config(
- self.filename, {'aliases': {self.alias:self.command}},
- self.dry_run
- )
+ aliases = self.distribution.get_option_dict('aliases')
+
+ if not self.args:
+ print "Command Aliases"
+ print "---------------"
+ for alias in aliases:
+ print "setup.py alias", format_alias(alias, aliases)
+ return
+
+ elif len(self.args)==1:
+ alias, = self.args
+ if self.remove:
+ command = None
+ elif alias in aliases:
+ print "setup.py alias", format_alias(alias, aliases)
+ return
+ else:
+ print "No alias definition found for %r" % alias
+ return
+ else:
+ alias = self.args[0]
+ command = ' '.join(map(repr,self.args[1:]))
+
+ edit_config(self.filename, {'aliases': {alias:command}}, self.dry_run)
+
+
+def format_alias(name, aliases):
+ source, command = aliases[name]
+ if source == config_file('global'):
+ source = '--global-config '
+ elif source == config_file('user'):
+ source = '--user-config '
+ elif source == config_file('local'):
+ source = ''
+ else:
+ source = '--filename=%r' % source
+ return source+name+' '+command
+ 
+
 


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /