aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
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},
+ )
+