Mercurial > public > mercurial-scm > hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
1712:21dcf38e5d7d | 1829:b0f6af327fd4 |
---|---|
1073 | 1073 |
1074 # This is a stopgap | 1074 # This is a stopgap |
1075 class hgwebdir(object): | 1075 class hgwebdir(object): |
1076 def __init__(self, config): | 1076 def __init__(self, config): |
1077 def cleannames(items): | 1077 def cleannames(items): |
1078 return [(name.strip('/'), path) for name, path in items] | 1078 return [(name.strip(os.sep), path) for name, path in items] |
1079 | 1079 |
1080 if type(config) == type([]): | 1080 if isinstance(config, (list, tuple)): |
1081 self.repos = cleannames(config) | 1081 self.repos = cleannames(config) |
1082 elif type(config) == type({}): | 1082 elif isinstance(config, dict): |
1083 self.repos = cleannames(config.items()) | 1083 self.repos = cleannames(config.items()) |
1084 self.repos.sort() | 1084 self.repos.sort() |
1085 else: | 1085 else: |
1086 cp = ConfigParser.SafeConfigParser() | 1086 cp = ConfigParser.SafeConfigParser() |
1087 cp.read(config) | 1087 cp.read(config) |
1088 self.repos = cleannames(cp.items("paths")) | 1088 self.repos = [] |
1089 if cp.has_section('paths'): | |
1090 self.repos.extend(cleannames(cp.items('paths'))) | |
1091 if cp.has_section('collections'): | |
1092 for prefix, root in cp.items('collections'): | |
1093 for path in util.walkrepos(root): | |
1094 repo = os.path.normpath(path) | |
1095 name = repo | |
1096 if name.startswith(prefix): | |
1097 name = name[len(prefix):] | |
1098 self.repos.append((name.lstrip(os.sep), repo)) | |
1089 self.repos.sort() | 1099 self.repos.sort() |
1090 | 1100 |
1091 def run(self, req=hgrequest()): | 1101 def run(self, req=hgrequest()): |
1092 def header(**map): | 1102 def header(**map): |
1093 yield tmpl("header", **map) | 1103 yield tmpl("header", **map) |