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) |