Patch from Bastien Kleineidam:
adds the 'install_data' and 'install_scripts' commands; these two
are trivial thanks to the 'install_misc' base class in cmd.py.
(Minor tweaks and commentary by me; the code is untested so far.)
diff --git a/Lib/distutils/command/__init__.py b/Lib/distutils/command/__init__.py
index 385330b..573ae51 100644
--- a/Lib/distutils/command/__init__.py
+++ b/Lib/distutils/command/__init__.py
@@ -11,6 +11,8 @@
            'build_clib',
            'install',
            'install_lib',
+           'install_scripts',
+           'install_data',
            'clean',
            'sdist',
            'bdist',
diff --git a/Lib/distutils/command/install.py b/Lib/distutils/command/install.py
index c70ed9a..3f6fa33 100644
--- a/Lib/distutils/command/install.py
+++ b/Lib/distutils/command/install.py
@@ -90,7 +90,10 @@
     # (func, command) where 'func' is a function to call that returns
     # true if 'command' (the sub-command name, a string) needs to be
     # run.  If 'func' is None, assume that 'command' must always be run.
-    sub_commands = [(None, 'install_lib')]
+    sub_commands = [(None, 'install_lib'),
+                    (None, 'install_scripts'),
+                    (None, 'install_data'),
+                   ]
 
 
     def initialize_options (self):
diff --git a/Lib/distutils/command/install_data.py b/Lib/distutils/command/install_data.py
new file mode 100644
index 0000000..f86d95e
--- /dev/null
+++ b/Lib/distutils/command/install_data.py
@@ -0,0 +1,14 @@
+from distutils.cmd import install_misc
+
+class install_data (install_misc):
+
+    description = "install data files"
+
+    def finalize_options (self):
+        self._install_dir_from('install_data')
+
+    def run (self):
+        self._copydata(self.distribution.data)
+
+    def get_outputs (self):
+        return self._outputdata(self.distribution.data)
diff --git a/Lib/distutils/command/install_scripts.py b/Lib/distutils/command/install_scripts.py
new file mode 100644
index 0000000..665208e
--- /dev/null
+++ b/Lib/distutils/command/install_scripts.py
@@ -0,0 +1,16 @@
+from distutils.cmd import install_misc
+
+class install_scripts(install_misc):
+
+    description = "install scripts"
+    # XXX needed?
+    user_options = [('install-dir=', 'd', "directory to install to")]
+
+    def finalize_options (self):
+        self._install_dir_from('install_scripts')
+
+    def run (self):
+        self._copydata(self.distribution.scripts)
+
+    def get_outputs(self):
+        return self._outputdata(self.distribution.scripts)