[PATCH 2 of 3 RFC] setup: install some useful data files

Dan Villiom Podlaski Christiansen danchr at gmail.com
Tue Nov 17 15:36:43 CST 2009


# HG changeset patch
# User Dan Villiom Podlaski Christiansen <danchr at gmail.com>
# Date 1257773193 -3600
# Node ID 9cf85ff4e6016a227dba8f94708f8e89a9814440
# Parent  40a9bb89ffbff69a966089dccd2c8ddeef415eb6
setup: install some useful data files.

diff --git a/contrib/bash_completion b/contrib/completion/bash/hg
rename from contrib/bash_completion
rename to contrib/completion/bash/hg
diff --git a/contrib/zsh_completion b/contrib/completion/zsh/_hg
rename from contrib/zsh_completion
rename to contrib/completion/zsh/_hg
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -34,9 +34,18 @@ from distutils.dist import Distribution
 from distutils.command.install_data import install_data
 from distutils.command.build import build
 from distutils.command.build_py import build_py
+from distutils.command.install import INSTALL_SCHEMES
 from distutils.spawn import spawn, find_executable
 from distutils.ccompiler import new_compiler
 
+# on UNIX-like systems, the distutils default is install data directly in
+# $PREFIX, $HOME or whatever the base is. In such cases, change the default
+# to the standard `share' directory.
+for platform, scheme in INSTALL_SCHEMES.iteritems():
+  if platform.split('_', 1)[0] == 'unix':
+    if scheme['data'][0] == '$' and '/' not in scheme['data']:
+      scheme['data'] += '/share'
+
 extra = {}
 scripts = ['hg']
 if os.name == 'nt':
@@ -271,7 +280,14 @@ if sys.platform == 'linux2' and os.uname
                                      ['hgext/inotify/linux/_inotify.c']))
         packages.extend(['hgext.inotify', 'hgext.inotify.linux'])
 
-datafiles = []
+datafiles = [
+    ('bash_completion.d', ['contrib/completion/bash/hg']),
+    ('zsh/site-functions', ['contrib/completion/zsh/_hg']),
+    ('mercurial/www', ['hgweb.cgi', 'hgwebdir.cgi',
+                       'contrib/hgwebdir.fcgi',
+                       'contrib/hgwebdir.wsgi']),
+    ('mercurial/examples', ['contrib/sample.hgrc', 'contrib/mergetools.hgrc']),
+]
 
 setup(name='mercurial',
       version=version,


More information about the Mercurial-devel mailing list