Mercurial > public > mercurial-scm > hg
diff mercurial/hgweb.py @ 1829:b0f6af327fd4
hgwebdir: export collections of repos
now you can use [collections] section in hgweb.config to export entire
tree of repos.
author | Vadim Gelfer <vadim.gelfer@gmail.com> |
---|---|
date | Fri, 10 Feb 2006 11:25:07 -0800 |
parents | 41d884f741ca |
children | 4ced57680ce7 |
line wrap: on
line diff
--- a/mercurial/hgweb.py Thu Feb 09 17:18:43 2006 -0600 +++ b/mercurial/hgweb.py Fri Feb 10 11:25:07 2006 -0800 @@ -1075,17 +1075,27 @@ class hgwebdir(object): def __init__(self, config): def cleannames(items): - return [(name.strip('/'), path) for name, path in items] + return [(name.strip(os.sep), path) for name, path in items] - if type(config) == type([]): + if isinstance(config, (list, tuple)): self.repos = cleannames(config) - elif type(config) == type({}): + elif isinstance(config, dict): self.repos = cleannames(config.items()) self.repos.sort() else: cp = ConfigParser.SafeConfigParser() cp.read(config) - self.repos = cleannames(cp.items("paths")) + self.repos = [] + if cp.has_section('paths'): + self.repos.extend(cleannames(cp.items('paths'))) + if cp.has_section('collections'): + for prefix, root in cp.items('collections'): + for path in util.walkrepos(root): + repo = os.path.normpath(path) + name = repo + if name.startswith(prefix): + name = name[len(prefix):] + self.repos.append((name.lstrip(os.sep), repo)) self.repos.sort() def run(self, req=hgrequest()):