Bastian Kleineidam: the "build_scripts" command and changes
necessary to support it.
Details:
- build command additionally calls build_scripts
- build_scripts builds your scripts in 'build/scripts' and adjusts the
first line if it begins with "#!" and ends with "python", optionally
ending with commandline options (like -O, -t ...). Adjusting means we
write the current path to the Python interpreter in the first line.
- install_scripts copies the scripts to the install_scripts dir
- install_data copies your data_files in install_data. You can
supply individual directories for your data_files:
data_files = ['doc/info.txt', # copy this file in install_scripts dir
('testdata', ['a.dat', 'b.dat']), # copy these files in
# install_scripts/testdata
('/etc', ['packagerc']), # copy this in /etc. When --root is
# given, copy this in rootdir/etc
]
So you can use the --root option with absolute data paths.
diff --git a/Lib/distutils/command/build.py b/Lib/distutils/command/build.py
index aab0d6f..96d41d5 100644
--- a/Lib/distutils/command/build.py
+++ b/Lib/distutils/command/build.py
@@ -24,6 +24,8 @@
('build-lib=', None,
"build directory for all distribution (defaults to either " +
"build-purelib or build-platlib"),
+ ('build-scripts=', None,
+ "build directory for scripts"),
('build-temp=', 't',
"temporary build directory"),
('compiler=', 'c',
@@ -42,6 +44,7 @@
self.build_platlib = None
self.build_lib = None
self.build_temp = None
+ self.build_scripts = None
self.compiler = None
self.debug = None
self.force = 0
@@ -76,6 +79,8 @@
if self.build_temp is None:
self.build_temp = os.path.join (self.build_base,
'temp.' + self.plat)
+ if self.build_scripts is None:
+ self.build_scripts = os.path.join (self.build_base, 'scripts')
# finalize_options ()
@@ -100,4 +105,7 @@
if self.distribution.has_ext_modules():
self.run_peer ('build_ext')
+ if self.distribution.scripts:
+ self.run_peer ('build_scripts')
+
# class build