diff options
author | Adam Stokes <adam.stokes@ubuntu.com> | 2013-07-26 10:48:56 -0400 |
---|---|---|
committer | Adam Stokes <adam.stokes@ubuntu.com> | 2013-07-26 10:48:56 -0400 |
commit | de0b58ac472837b2e75729e00827117072a83893 (patch) | |
tree | 465fafd9c76e8a6dcae9be4fb0b7801303a33521 /setup.py | |
parent | f499e561043af2f801deb48fdc91d51a29ba22e8 (diff) | |
download | sos-de0b58ac472837b2e75729e00827117072a83893.tar.gz |
Add support for distutils
- We are planning on moving to python distutils for future packaging
however, we still want to keep our current build infrastructure around
until we are able to test the builds overtime. For now distutils will
live alongside the current build process and slowly replace the Makefiles
once deemed fit.
Signed-off-by: Adam Stokes <adam.stokes@ubuntu.com>
Diffstat (limited to 'setup.py')
-rw-r--r-- | setup.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..7672a973 --- /dev/null +++ b/setup.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python + +from distutils.core import setup +from distutils.command.build import build +from distutils.command.install_data import install_data +from distutils.dep_util import newer +from distutils.log import warn, info, error + +import glob +import os +import subprocess + +from sos import __version__ as VERSION + +PO_DIR = 'po' +MO_DIR = os.path.join('build', 'mo') + +class BuildData(build): + def run(self): + build.run(self) + for po in glob.glob(os.path.join(PO_DIR, '*.po')): + lang = os.path.basename(po[:-3]) + mo = os.path.join(MO_DIR, lang, 'sos.mo') + + directory = os.path.dirname(mo) + if not os.path.exists(directory): + os.makedirs(directory) + + if newer(po, mo): + try: + rc = subprocess.call(['msgfmt', '-o', mo, po]) + if rc != 0: + raise Warning("msgfmt returned %d" % (rc,)) + except Exception, e: + error("Failed gettext.") + sys.exit(1) + +class InstallData(install_data): + def run(self): + self.data_files.extend(self._find_mo_files()) + install_data.run(self) + + def _find_mo_files(self): + data_files = [] + for mo in glob.glob(os.path.join(MO_DIR, '*', 'sos.mo')): + lang = os.path.basename(os.path.dirname(mo)) + dest = os.path.join('share', 'locale', lang, 'LC_MESSAGES') + data_files.append((dest, [mo])) + return data_files + +setup(name='sosreport', + version=VERSION, + description="""Set of tools to gather troubleshooting data + from a system Sos is a set of tools that gathers information about system + hardware and configuration. The information can then be used for + diagnostic purposes and debugging. Sos is commonly used to help + support technicians and developers.""", + author='Bryn M. Reeves', + author_email='bmr@redhat.com', + url='https://github.com/sosreport/sosreport', + license="GPLv2+", + scripts=['sosreport'], + data_files=[ + ('share/man/man1', ['man/en/sosreport.1']), + ('share/man/man5', ['man/en/sos.conf.5']), + ], + packages=['sos', 'sos.plugins', 'sos.policies'], + cmdclass={'build': BuildData, 'install_data': InstallData}, + ) + |