1
"""distutils.command.install_data
3
Implements the Distutils 'install_data' command, for installing
4
platform-independent data files."""
6
# contributed by Bastian Kleineidam
8
# This module should be kept compatible with Python 2.1.
10
__revision__ = "$Id: install_data.py 37828 2004-11-10 22:23:15Z loewis $"
13
from types import StringType
14
from distutils.core import Command
15
from distutils.util import change_root, convert_path
17
class install_data (Command):
19
description = "install data files"
23
"base directory for installing data files "
24
"(default: installation base dir)"),
26
"install everything relative to this alternate root directory"),
27
('force', 'f', "force installation (overwrite existing files)"),
30
boolean_options = ['force']
32
def initialize_options (self):
33
self.install_dir = None
38
self.data_files = self.distribution.data_files
41
def finalize_options (self):
42
self.set_undefined_options('install',
43
('install_data', 'install_dir'),
49
self.mkpath(self.install_dir)
50
for f in self.data_files:
51
if type(f) is StringType:
52
# it's a simple file, so copy it
55
self.warn("setup script did not provide a directory for "
56
"'%s' -- installing right in '%s'" %
57
(f, self.install_dir))
58
(out, _) = self.copy_file(f, self.install_dir)
59
self.outfiles.append(out)
61
# it's a tuple with path to install to and a list of files
62
dir = convert_path(f[0])
63
if not os.path.isabs(dir):
64
dir = os.path.join(self.install_dir, dir)
66
dir = change_root(self.root, dir)
70
# If there are no files listed, the user must be
71
# trying to create an empty directory, so add the
72
# directory to the list of output files.
73
self.outfiles.append(dir)
75
# Copy files, adding them to the list of output files.
77
data = convert_path(data)
78
(out, _) = self.copy_file(data, dir)
79
self.outfiles.append(out)
81
def get_inputs (self):
82
return self.data_files or []
84
def get_outputs (self):