mercurial/hgweb.py
changeset 1829 b0f6af327fd4
parent 1703 41d884f741ca
child 1830 4ced57680ce7
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)