[PATCH] Add RSS support to hgweb
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[PATCH] Add RSS support to hgweb
From: Goffredo Baroncelli <kreijack@libero.it>
with the two small patches below, now hgweb can act as feed source.
Two kinds ofobjects can be tracked: the changelong and the files. This
can be useful if anyone would track the changes of a file ( and
because git has it, mercurial have to has ).
To check the changelog the url is
http://127.0.0.1:8000/pippo.pluto?cmd=changelog;style=rss
To check a file ( the mercurial/hgweb.py for examples ) the url is
http://127.0.0.1:8000/?cmd=filelog;file=mercurial/hgweb.py;filenode=0;style=rss
The first patch adds a new filter for the template: the filter is
named rfc822date, and translates the date from the touple format to a
rfc822 style date. The second patch adds the templates needed to
create the rss pages.
Tested with akgregator ( kde ).
[tweaked by mpm:
add Content-type: text/xml
add support for URL to header()
add header with link and content type
add RSS links on the normal pages]
manifest hash: 170c03d50490d7160097f59abdde1a5073d2ba82
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCyFmLywK+sNU5EO8RApkrAKCYF/vZ3DwdMXPBds2LxGEX8+tK5QCfTeOc
ZhPN8Xjt2cD3wMbNXMcoNSo=
=COlM
-----END PGP SIGNATURE-----
#!/bin/sh
#
# This is an example of using HGEDITOR to automate the signing of
# commits and so on.
T1=""; T2=""
cleanup_exit() {
rm -f "$T1" "$T2"
exit $1
}
case "${EDITOR:=vi}" in
emacs)
EDITOR="$EDITOR -nw"
;;
gvim|vim)
EDITOR="$EDITOR -f -o"
;;
esac
if grep -q "^HG: merge resolve" "$1" ; then
# we don't sign merges
exec $EDITOR "$1"
else
T1=`mktemp`; T2=`mktemp`
MANIFEST=`grep '^HG: manifest hash' "$1" | cut -b 19-`
echo -e "\n\nmanifest hash: $MANIFEST" >> "$T1"
grep -vE '^(HG: manifest hash .*)?$' "$1" >> "$T1"
(
cd "`hg root`"
grep '^HG: changed' "$1" | cut -b 13- | while read changed; do
hg diff "$changed" >> "$T2"
done
)
CHECKSUM=`md5sum "$T1"`
$EDITOR "$T1" "$T2" || cleanup_exit $?
echo "$CHECKSUM" | md5sum -c 2>/dev/null && cleanup_exit 0
{
head -1 "$T1"
echo
grep -v "^HG:" "$T1" | gpg -a -u "${HGUSER:-$EMAIL}" --clearsign
} > "$T2" && mv "$T2" "$1"
cleanup_exit $?
fi