diff --git a/setup.py b/setup.py index 0fca098..9f49c24 100755 --- a/setup.py +++ b/setup.py @@ -23,7 +23,49 @@ __version__ = "3.2.2" import os from glob import glob from distutils.core import setup -from calculate.install_data import install_data +from distutils.command import install_data as module_install_data +from distutils.util import change_root, convert_path + +class install_data(module_install_data.install_data): + def run (self): + self.mkpath(self.install_dir) + for f in self.data_files: + if isinstance(f, str): + # it's a simple file, so copy it + f = convert_path(f) + if self.warn_dir: + self.warn("setup script did not provide a directory for " + "'%s' -- installing right in '%s'" % + (f, self.install_dir)) + (out, _) = self.copy_file(f, self.install_dir) + self.outfiles.append(out) + else: + # it's a tuple with path to install to 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) + self.mkpath(dir) + + if f[1] == []: + # If there are no files listed, the user must be + # trying to create an empty directory, so add the + # directory to the list of output files. + self.outfiles.append(dir) + else: + # Copy files, adding them to the list of output files. + for data in f[1]: + # is's a simple filename without chmod + if isinstance(data,str): + chmod = None + else: + data, chmod = data + data = convert_path(data) + (out, _) = self.copy_file(data, dir) + if chmod and os.stat(out).st_mode != chmod: + os.chmod(out,chmod) + self.outfiles.append(out) data_files = [('/usr/libexec/calculate', [('data/cl-git-wrapper', 0755)])]