Mercurial > hg
view contrib/tmplrewrite.py @ 18771:bb38f4f78104
hgweb: teach archive how to download a specific directory or file
The archive web command now takes into account the "file" request entry, if one
is provided.
The provided "file" is processed as a "path" corresponding to a directory or
file that will be downloaded.
With this change hgweb can to process requests such as:
http://mercurial.selenic.com/hg/archive/tip.zip/mercurial/templates
This will download all files on the mercurial/templates directory as a zip file.
It is not possible to specify file patterns ('glob', 'relglob', 'path',
'relpath', 're', 'relre' nor 'set'). The server will reject those with a
403 HTTP error response.
Note that this is a first step to add support for downloading directories from
the web interface. A following patch will modify the archiveentry map entry on
the different templates so that it adds the current folder path to the archive
links.
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Sun, 10 Feb 2013 11:52:05 +0100 |
parents | 94ef2c8ce683 |
children |
line wrap: on
line source
#!/usr/bin/python import sys, os, re IGNORE = ['.css', '.py'] oldre = re.compile('#([\w\|%]+)#') def rewrite(fn): f = open(fn) new = open(fn + '.new', 'wb') for ln in f: new.write(oldre.sub('{\\1}', ln)) new.close() f.close() os.rename(new.name, f.name) if __name__ == '__main__': if len(sys.argv) < 2: print 'usage: python tmplrewrite.py [file [file [file]]]' for fn in sys.argv[1:]: if os.path.splitext(fn) in IGNORE: continue print 'rewriting %s...' % fn rewrite(fn)