changeset 157:2653740d8118

Install the templates where they can be found by hgweb.py This ought to use package_data but that doesn't exist in Python 2.3. So we do a hack of install_data and use glob. This also adds templatepath() to hgweb.py which finds the templates relative to hgweb.py's location.
author mpm@selenic.com
date Wed, 25 May 2005 16:21:06 -0800
parents 32ce2c5d4d25
children be7103467d2e
files mercurial/hgweb.py setup.py
diffstat 2 files changed, 19 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/hgweb.py	Wed May 25 09:04:38 2005 -0800
+++ b/mercurial/hgweb.py	Wed May 25 16:21:06 2005 -0800
@@ -13,6 +13,11 @@
 import os, cgi, time, re, difflib, sys, zlib
 from mercurial.hg import *
 
+def templatepath():
+    for f in "templates/map", "../templates/map":
+        p = os.path.join(os.path.dirname(__file__), f)
+        if os.path.isfile(p): return p
+
 def age(t):
     def plural(t, c):
         if c == 1: return t
@@ -102,7 +107,9 @@
     maxchanges = 20
     maxfiles = 10
 
-    def __init__(self, path, name, templatemap):
+    def __init__(self, path, name, templatemap = ""):
+        templatemap = templatemap or templatepath()
+
         self.reponame = name
         self.repo = repository(ui(), path)
         self.t = templater(templatemap)
--- a/setup.py	Wed May 25 09:04:38 2005 -0800
+++ b/setup.py	Wed May 25 16:21:06 2005 -0800
@@ -5,7 +5,15 @@
 # './setup.py install', or
 # './setup.py --help' for more options
 
+import glob
 from distutils.core import setup, Extension
+from distutils.command.install_data import install_data
+
+class install_package_data(install_data):
+    def finalize_options(self):
+        self.set_undefined_options('install',
+                                   ('install_lib', 'install_dir'))
+        install_data.finalize_options(self)
 
 setup(name='mercurial',
       version='0.4f',
@@ -16,4 +24,7 @@
       license='GNU GPL',
       packages=['mercurial'],
       ext_modules=[Extension('mercurial.mpatch', ['mercurial/mpatch.c'])],
+      data_files=[('mercurial/templates',
+                   ['templates/map'] + glob.glob('templates/*.tmpl'))], 
+      cmdclass = { 'install_data' : install_package_data },
       scripts=['hg'])