equal
deleted
inserted
replaced
920 httpd.serve_forever() |
920 httpd.serve_forever() |
921 |
921 |
922 # This is a stopgap |
922 # This is a stopgap |
923 class hgwebdir: |
923 class hgwebdir: |
924 def __init__(self, config): |
924 def __init__(self, config): |
925 self.cp = ConfigParser.SafeConfigParser() |
925 cp = ConfigParser.SafeConfigParser() |
926 self.cp.read(config) |
926 cp.read(config) |
|
927 self.repos = cp.items("paths") |
|
928 self.repos.sort() |
927 |
929 |
928 def run(self): |
930 def run(self): |
929 def header(**map): |
931 def header(**map): |
930 yield tmpl("header", **map) |
932 yield tmpl("header", **map) |
931 |
933 |
937 tmpl = templater(m, common_filters, |
939 tmpl = templater(m, common_filters, |
938 {"header": header, "footer": footer}) |
940 {"header": header, "footer": footer}) |
939 |
941 |
940 def entries(**map): |
942 def entries(**map): |
941 parity = 0 |
943 parity = 0 |
942 repos = self.cp.items("paths") |
944 for name, path in self.repos: |
943 repos.sort() |
|
944 for name, path in repos: |
|
945 u = ui() |
945 u = ui() |
946 u.readconfig(file(os.path.join(path, '.hg', 'hgrc'))) |
946 u.readconfig(file(os.path.join(path, '.hg', 'hgrc'))) |
947 get = u.config |
947 get = u.config |
948 |
948 |
949 url = os.environ["REQUEST_URI"] + "/" + name |
949 url = os.environ["REQUEST_URI"] + "/" + name |
966 virtual = "" |
966 virtual = "" |
967 |
967 |
968 virtual = virtual.strip('/') |
968 virtual = virtual.strip('/') |
969 |
969 |
970 if len(virtual): |
970 if len(virtual): |
971 if self.cp.has_option("paths", virtual): |
971 real = dict(self.repos).get(virtual) |
972 real = self.cp.get("paths", virtual) |
972 if real: |
973 h = hgweb(real) |
973 h = hgweb(real) |
974 h.run() |
974 h.run() |
975 return |
975 return |
976 else: |
976 else: |
977 write(tmpl("notfound", repo = virtual)) |
977 write(tmpl("notfound", repo = virtual)) |