[PATCH] Add MOTD display to hgweb and hgwebdir.
Colin McMillen
mcmillen at cs.cmu.edu
Fri Apr 28 01:39:58 UTC 2006
# HG changeset patch
# User Colin McMillen <mcmillen at cs.cmu.edu>
# Node ID dbcde194840b5f0ea0f1672faeff4f039645d7eb
# Parent 4334be196f8db44effc59167fb57cb4bbbc1d065
Add MOTD display to hgweb and hgwebdir.
The hgweb "footer" template now has space for an optional message of
the day (MOTD). This is used in two contexts:
1) On the hgwebdir index page
2) On various pages of each individual repo
For both cases, the MOTD is read out of an entry named "motd" in the
[web] section of a config file -- the only difference is which file is
used. For #1, you need to add the section to hgweb.config; for #2, you
need to add to the repo's .hgrc file.
I suggest something like this:
[web]
motd = <p>To download these repositories, <a href="http://www.selenic.com/mercurial">get Mercurial</a> and then type something like:</p><p><pre>hg clone http://gs3080.sp.cs.cmu.edu/hg.cgi/cpmpy</pre></p>You can also click the Download links to get an archive of the latest revision.
An online sample is available here:
http://gs3080.sp.cs.cmu.edu/hg.cgi
diff -r 4334be196f8db44effc59167fb57cb4bbbc1d065 -r dbcde194840b5f0ea0f1672faeff4f039645d7eb mercurial/hgweb.py
--- a/mercurial/hgweb.py Wed Apr 26 16:54:07 2006 +0200
+++ b/mercurial/hgweb.py Thu Apr 27 21:38:45 2006 -0400
@@ -727,7 +727,9 @@ class hgweb(object):
yield self.t("header", **map)
def footer(**map):
- yield self.t("footer", **map)
+ yield self.t("footer",
+ motd=self.repo.ui.config("web", "motd", ""),
+ **map)
def expand_form(form):
shortcuts = {
@@ -1006,6 +1008,7 @@ class hgwebdir(object):
def cleannames(items):
return [(name.strip(os.sep), path) for name, path in items]
+ self.motd = ""
if isinstance(config, (list, tuple)):
self.repos = cleannames(config)
elif isinstance(config, dict):
@@ -1015,6 +1018,8 @@ class hgwebdir(object):
cp = ConfigParser.SafeConfigParser()
cp.read(config)
self.repos = []
+ if cp.has_section('web') and cp.has_option('web', 'motd'):
+ self.motd = cp.get('web', 'motd')
if cp.has_section('paths'):
self.repos.extend(cleannames(cp.items('paths')))
if cp.has_section('collections'):
@@ -1032,7 +1037,7 @@ class hgwebdir(object):
yield tmpl("header", **map)
def footer(**map):
- yield tmpl("footer", **map)
+ yield tmpl("footer", motd=self.motd, **map)
m = os.path.join(templater.templatepath(), "map")
tmpl = templater.templater(m, templater.common_filters,
diff -r 4334be196f8db44effc59167fb57cb4bbbc1d065 -r dbcde194840b5f0ea0f1672faeff4f039645d7eb templates/footer.tmpl
--- a/templates/footer.tmpl Wed Apr 26 16:54:07 2006 +0200
+++ b/templates/footer.tmpl Thu Apr 27 21:38:45 2006 -0400
@@ -1,3 +1,4 @@
+#motd#
<div class="logo">
powered by<br/>
<a href="http://www.selenic.com/mercurial/">mercurial</a>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 191 bytes
Desc: Digital signature
URL: <http://lists.mercurial-scm.org/pipermail/mercurial/attachments/20060427/2a221b77/attachment-0001.asc>
More information about the Mercurial
mailing list