Add salt-call to the available scripts and allow packaging with setuptools

This commit is contained in:
Pedro Algarvio 2014-10-01 21:39:37 +01:00
parent 5afb59090d
commit c081844c22

View file

@ -66,6 +66,7 @@ if 'USE_SETUPTOOLS' in os.environ or 'setuptools' in sys.modules:
from setuptools import setup
from setuptools.command.install import install
from setuptools.command.sdist import sdist
from setuptools.command.egg_info import egg_info
WITH_SETUPTOOLS = True
except ImportError:
WITH_SETUPTOOLS = False
@ -176,6 +177,15 @@ class WriteSaltSshPackaingFile(Command):
# pylint: enable=E0602
if WITH_SETUPTOOLS is True:
class EggInfo(egg_info):
def finalize_options(self):
if getattr(self.distribution, 'packaged_for_salt_ssh', PACKAGED_FOR_SALT_SSH):
self.distribution.metadata.name = 'salt-ssh'
egg_info.finalize_options(self)
class Sdist(sdist):
user_options = sdist.user_options + [
('ssh-packaging', None, 'Prepare the salt-ssh packaging')
@ -197,6 +207,15 @@ class Sdist(sdist):
self.distribution.salt_ssh_packaging_file = PACKAGED_FOR_SALT_SSH_FILE
self.run_command('write-salt-ssh-packaging-file')
self.distribution.package_data.pop('salt.daemons.flo', None)
self.filelist.files.append(os.path.basename(PACKAGED_FOR_SALT_SSH_FILE))
self.distribution.metadata.name = 'salt-ssh'
self.distribution.data_files = [('share/man/man1',
['doc/man/salt-ssh.1',
'doc/man/salt-run.1',
'doc/man/salt-call.1',
'doc/man/salt-cloud.1']),
('share/man/man7', ['doc/man/salt.7'])]
sdist.make_release_tree(self, base_dir, files)
# Let's generate salt/_version.py to include in the sdist tarball
@ -206,18 +225,6 @@ class Sdist(sdist):
)
self.run_command('write-salt-version')
def write_manifest(self):
if self.ssh_packaging:
self.filelist.files.append(os.path.basename(PACKAGED_FOR_SALT_SSH_FILE))
self.distribution.metadata.name = 'salt-ssh'
# Only Salt or Salt-SSH must be installed at a time
self.distribution.package_data.pop('salt.daemons.flo')
self.distribution.data_files = [('share/man/man1',
['doc/man/salt-ssh.1',
'doc/man/salt-cloud.1']),
('share/man/man7', ['doc/man/salt.7'])]
sdist.write_manifest(self)
def make_distribution(self):
sdist.make_distribution(self)
if self.ssh_packaging:
@ -337,6 +344,7 @@ class CloudSdist(Sdist):
continue
if filename not in ('scripts/salt-ssh',
'scripts/salt-run',
'scripts/salt-call',
'scripts/salt-cloud'):
self.filelist.files.pop(
self.filelist.files.index(filename)
@ -537,7 +545,6 @@ class Install(install):
def run(self):
# Let's set the running_salt_install attribute so we can add
# _version.py in the build command
print 444, self.salt_transport
self.distribution.running_salt_install = True
self.distribution.salt_version_hardcoded_path = os.path.join(
self.build_lib, 'salt', '_version.py'
@ -589,7 +596,7 @@ SETUP_KWARGS = {'name': NAME,
'sdist': Sdist,
'install': Install,
'write-salt-version': WriteSaltVersion,
'write-salt-ssh-packaging-file': WriteSaltSshPackaingFile
'write-salt-ssh-packaging-file': WriteSaltSshPackaingFile,
},
'classifiers': ['Programming Language :: Python',
'Programming Language :: Cython',
@ -804,6 +811,7 @@ if HAS_ESKY:
SETUP_KWARGS['options'] = OPTIONS
if WITH_SETUPTOOLS:
SETUP_KWARGS['cmdclass']['egg_info'] = EggInfo
if PACKAGED_FOR_SALT_SSH is False:
SETUP_KWARGS['entry_points'] = {
'console_scripts': ['salt-call = salt.scripts:salt_call',
@ -814,8 +822,9 @@ if WITH_SETUPTOOLS:
if IS_WINDOWS_PLATFORM is False:
if PACKAGED_FOR_SALT_SSH:
SETUP_KWARGS['entry_points'] = {'console_scripts': [
'salt-ssh = salt.scripts:salt_ssh'
'salt-ssh = salt.scripts:salt_ssh',
'salt-run = salt.scripts:salt_run',
'salt-call = salt.scripts:salt_call',
'salt-cloud = salt.scripts:salt_cloud',
]}
else:
@ -851,6 +860,7 @@ if IS_WINDOWS_PLATFORM is False:
SETUP_KWARGS['scripts'] = [
'scripts/salt-ssh',
'scripts/salt-run',
'scripts/salt-call',
'scripts/salt-cloud'
]
else: