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)