summaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 06eba419f..4c2b0e881 100755
--- a/setup.py
+++ b/setup.py
@@ -24,7 +24,51 @@ Python-level packaging using distutils.
"""
from distutils.core import setup
+from distutils.command.install_data import install_data as _install_data
+from distutils.util import change_root, convert_path
+from distutils import log
+from types import StringType
import ipalib
+import os
+
+class install_data(_install_data):
+ """Override the built-in install_data to gzip files once they
+ are installed.
+ """
+
+ def run(self):
+ # install_data is a classic class so super() won't work. Call it
+ # directly to copy the files first.
+ _install_data.run(self)
+
+ # Now gzip them
+ for f in self.data_files:
+ if type(f) is StringType:
+ # it's a simple file
+ f = convert_path(f)
+ cmd = '/bin/gzip %s/%s' % (self.install_dir, f)
+ log.info("gzipping %s/%s" % (self.install_dir, f))
+ os.system(cmd)
+ else:
+ # it's a tuple with path and a list of files
+ dir = convert_path(f[0])
+ if not os.path.isabs(dir):
+ dir = os.path.join(self.install_dir, dir)
+ elif self.root:
+ dir = change_root(self.root, dir)
+
+ if f[1] == []:
+ # If there are no files listed the user must be
+ # trying to create an empty directory. So nothing
+ # to do here.
+ pass
+ else:
+ # gzip the files
+ for data in f[1]:
+ data = convert_path(data)
+ cmd = '/bin/gzip %s/%s' % (dir, data)
+ log.info("gzipping %s/%s" % (dir, data))
+ os.system(cmd)
setup(
name='freeipa',
@@ -40,4 +84,5 @@ setup(
'ipawebui',
],
scripts=['ipa'],
+ data_files = [('share/man/man1', ["ipa.1"])],
)