Index: Lib/distutils/command/build_scripts.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/distutils/command/build_scripts.py,v retrieving revision 1.22 diff -u -d -r1.22 build_scripts.py --- Lib/distutils/command/build_scripts.py 25 Mar 2004 22:04:51 -0000 1.22 +++ Lib/distutils/command/build_scripts.py 21 Jun 2004 16:22:42 -0000 @@ -24,9 +24,10 @@ user_options = [ ('build-dir=', 'd', "directory to \"build\" (copy) to"), ('force', 'f', "forcibly build everything (ignore file timestamps"), + ('strip-extensions', None, "strip script extensions on Unix"), ] - boolean_options = ['force'] + boolean_options = ['force', 'strip-extensions'] def initialize_options (self): @@ -34,12 +35,15 @@ self.scripts = None self.force = None self.outfiles = None + self.strip_extensions = 0 def finalize_options (self): self.set_undefined_options('build', ('build_scripts', 'build_dir'), ('force', 'force')) self.scripts = self.distribution.scripts + if os.name != "posix" or sys.platform == "darwin": + self.strip_extensions = 0 def get_source_files(self): return self.scripts @@ -49,7 +53,6 @@ return self.copy_scripts() - def copy_scripts (self): """Copy each script listed in 'self.scripts'; if it's marked as a Python script in the Unix way (first line matches 'first_line_re', @@ -61,7 +64,10 @@ for script in self.scripts: adjust = 0 script = convert_path(script) - outfile = os.path.join(self.build_dir, os.path.basename(script)) + filename = os.path.basename(script) + if self.strip_extensions: + filename = os.path.splitext(filename)[0] + outfile = os.path.join(self.build_dir, filename) outfiles.append(outfile) if not self.force and not newer(script, outfile): Index: Lib/distutils/tests/test_build_scripts.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/distutils/tests/test_build_scripts.py,v retrieving revision 1.1 diff -u -d -r1.1 test_build_scripts.py --- Lib/distutils/tests/test_build_scripts.py 21 Jun 2004 16:15:22 -0000 1.1 +++ Lib/distutils/tests/test_build_scripts.py 21 Jun 2004 16:22:42 -0000 @@ -1,6 +1,7 @@ """Tests for distutils.command.build_scripts.""" import os +import sys import unittest from distutils.command.build_scripts import build_scripts @@ -36,6 +37,24 @@ for name in expected: self.assert_(name in built) + def test_build_without_extensions(self): + source = self.mkdtemp() + target = self.mkdtemp() + expected = self.write_sample_scripts(source) + + cmd = self.get_build_scripts_cmd(target, + [os.path.join(source, fn) + for fn in expected]) + cmd.strip_extensions = 1 + cmd.finalize_options() + cmd.run() + + built = os.listdir(target) + if os.name == "posix" and sys.platform != "darwin": + expected = [os.path.splitext(fn)[0] for fn in expected] + for name in expected: + self.assert_(name in built) + def get_build_scripts_cmd(self, target, scripts): dist = Distribution() dist.scripts = scripts