aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
authorAdam Stokes <adam.stokes@ubuntu.com>2013-07-26 10:48:56 -0400
committerAdam Stokes <adam.stokes@ubuntu.com>2013-07-26 10:48:56 -0400
commitde0b58ac472837b2e75729e00827117072a83893 (patch)
tree465fafd9c76e8a6dcae9be4fb0b7801303a33521 /setup.py
parentf499e561043af2f801deb48fdc91d51a29ba22e8 (diff)
downloadsos-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.py70
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},
+ )
+