diff options
Diffstat (limited to 'setuptools/command')
-rw-r--r-- | setuptools/command/__init__.py | 4 | ||||
-rwxr-xr-x | setuptools/command/alias.py | 39 | ||||
-rwxr-xr-x | setuptools/command/saveopts.py | 12 | ||||
-rwxr-xr-x | setuptools/command/sdist.py | 2 | ||||
-rwxr-xr-x | setuptools/command/setopt.py | 10 |
5 files changed, 53 insertions, 14 deletions
diff --git a/setuptools/command/__init__.py b/setuptools/command/__init__.py index 0606ef9c..29f3000d 100644 --- a/setuptools/command/__init__.py +++ b/setuptools/command/__init__.py @@ -1,6 +1,8 @@ import distutils.command -__all__ = ['test', 'develop', 'bdist_egg', 'saveopts', 'setopt', 'rotate'] +__all__ = [ + 'test', 'develop', 'bdist_egg', 'saveopts', 'setopt', 'rotate', 'alias' +] # Make our commands available as though they were part of the distutils diff --git a/setuptools/command/alias.py b/setuptools/command/alias.py new file mode 100755 index 00000000..42d6b2fc --- /dev/null +++ b/setuptools/command/alias.py @@ -0,0 +1,39 @@ +import distutils, os +from setuptools import Command +from distutils.util import convert_path +from distutils import log +from distutils.errors import * +from setuptools.command.setopt import edit_config, option_base + +class alias(option_base): + """Abstract base class for commands that mess with config files""" + + description = "set an option in setup.cfg or another config file" + + 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.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") + + def run(self): + edit_config( + self.filename, {'aliases': {self.alias:self.command}}, + self.dry_run + ) + diff --git a/setuptools/command/saveopts.py b/setuptools/command/saveopts.py index ad3cf193..1180a440 100755 --- a/setuptools/command/saveopts.py +++ b/setuptools/command/saveopts.py @@ -7,21 +7,19 @@ class saveopts(option_base): description = "save supplied options to setup.cfg or other config file" - user_options = option_base.user_options + [ - ] - - boolean_options = option_base.boolean_options + [ - ] - def run(self): dist = self.distribution commands = dist.command_options.keys() settings = {} + for cmd in commands: + if cmd=='saveopts': - continue + continue # don't save our own options! + for opt,(src,val) in dist.get_option_dict(cmd).items(): if src=="command line": settings.setdefault(cmd,{})[opt] = val + edit_config(self.filename, settings, self.dry_run) diff --git a/setuptools/command/sdist.py b/setuptools/command/sdist.py index 3891526d..673255bb 100755 --- a/setuptools/command/sdist.py +++ b/setuptools/command/sdist.py @@ -84,6 +84,7 @@ class sdist(_sdist): """Smart sdist that finds anything supported by revision control""" def run(self): + self.run_command('egg_info') _sdist.run(self) dist_files = getattr(self.distribution,'dist_files',[]) for file in self.archive_files: @@ -120,4 +121,3 @@ class sdist(_sdist): - diff --git a/setuptools/command/setopt.py b/setuptools/command/setopt.py index b5d9d307..3af0753f 100755 --- a/setuptools/command/setopt.py +++ b/setuptools/command/setopt.py @@ -84,12 +84,12 @@ class option_base(Command): """Abstract base class for commands that mess with config files""" user_options = [ - ('filename=', 'f', - "set the file to use (default=setup.cfg)"), ('global-config', 'g', "save options to the site-wide distutils.cfg file"), ('user-config', 'u', "save options to the current user's pydistutils.cfg file"), + ('filename=', 'f', + "configuration file to use (default=setup.cfg)"), ] boolean_options = [ @@ -126,12 +126,12 @@ class setopt(option_base): description = "set an option in setup.cfg or another config file" - user_options = option_base.user_options + [ + user_options = [ ('command=', 'c', 'command to set an option for'), ('option=', 'o', 'option to set'), ('set-value=', 's', 'value of the option'), - ('remove', 'r', 'unset the value'), - ] + ('remove', 'r', 'remove (unset) the value'), + ] + option_base.user_options boolean_options = option_base.boolean_options + ['remove'] |