Mercurial > hg > mercurial-crew-with-dirclash
view tests/test-archive @ 1411:e2ba788545bf
hgweb: make viewing of non-text work in hgweb
We use mimetypes.guess_type to guess file types and util.binary to determine
whether a file is displayable as text.
This lets us display displayable text files in our normal source view.
Files that appear to be binary will be displayed as something like
"(binary:image/gif)".
Clicking on raw view will send the raw file with an appropriate MIME
type. Thus things like GIFs will now be viewable inside hgweb without
making a mess. Further, things like postscript files that are text
should show source in the normal view and a browser can launch a
postscript viewer for the raw view.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 18 Oct 2005 23:50:55 -0700 |
parents | 4603eef60237 |
children | 385b06493465 7d83a351a936 |
line wrap: on
line source
#!/bin/sh mkdir test cd test hg init echo foo>foo hg addremove hg commit -m 1 echo bar>bar hg addremove hg commit -m 2 mkdir baz echo bletch>baz/bletch hg addremove hg commit -m 3 echo "[web]" >> .hg/hgrc echo "name = test-archive" >> .hg/hgrc echo "allowzip = true" >> .hg/hgrc echo "allowgz = true" >> .hg/hgrc echo "allowbz2 = true" >> .hg/hgrc hg serve -p 20059 > /dev/null & sleep 1 # wait for server to be started TIP=`hg id -v | cut -f1 -d' '` QTIP=`hg id -q` cat > getarchive.py <<EOF import sys, urllib2 node, archive = sys.argv[1:] f = urllib2.urlopen('http://127.0.0.1:20059/?cmd=archive;node=%s;type=%s' % (node, archive)) sys.stdout.write(f.read()) EOF http_proxy= python getarchive.py "$TIP" gz | tar tzf - | sed "s/$QTIP/TIP/" http_proxy= python getarchive.py "$TIP" bz2 | tar tjf - | sed "s/$QTIP/TIP/" http_proxy= python getarchive.py "$TIP" zip > archive.zip unzip -t archive.zip | sed "s/$QTIP/TIP/" kill $!