equal
deleted
inserted
replaced
908 accept.append(line.strip()) |
908 accept.append(line.strip()) |
909 else: |
909 else: |
910 accept = accept + line[7:].split(',') |
910 accept = accept + line[7:].split(',') |
911 env['HTTP_ACCEPT'] = ','.join(accept) |
911 env['HTTP_ACCEPT'] = ','.join(accept) |
912 |
912 |
913 save = sys.argv, sys.stderr |
913 req = hgrequest(self.rfile, self.wfile, env) |
914 try: |
914 self.send_response(200, "Script output follows") |
915 req = hgrequest(self.rfile, self.wfile, env) |
915 hg.run(req) |
916 sys.argv = ["hgweb.py"] |
|
917 if '=' not in query: |
|
918 sys.argv.append(query) |
|
919 self.send_response(200, "Script output follows") |
|
920 hg.run(req) |
|
921 finally: |
|
922 sys.argv, sys.stderr = save |
|
923 |
916 |
924 hg = hgweb(repo) |
917 hg = hgweb(repo) |
925 if use_ipv6: |
918 if use_ipv6: |
926 return IPv6HTTPServer((address, port), hgwebhandler) |
919 return IPv6HTTPServer((address, port), hgwebhandler) |
927 else: |
920 else: |
934 httpd.serve_forever() |
927 httpd.serve_forever() |
935 |
928 |
936 # This is a stopgap |
929 # This is a stopgap |
937 class hgwebdir: |
930 class hgwebdir: |
938 def __init__(self, config): |
931 def __init__(self, config): |
|
932 def cleannames(items): |
|
933 return [(name.strip('/'), path) for name, path in items] |
|
934 |
939 if type(config) == type([]): |
935 if type(config) == type([]): |
940 self.repos = config |
936 self.repos = cleannames(config) |
941 elif type(config) == type({}): |
937 elif type(config) == type({}): |
942 self.repos = config.items() |
938 self.repos = cleannames(config.items()) |
943 self.repos.sort() |
939 self.repos.sort() |
944 else: |
940 else: |
945 cp = ConfigParser.SafeConfigParser() |
941 cp = ConfigParser.SafeConfigParser() |
946 cp.read(config) |
942 cp.read(config) |
947 self.repos = cp.items("paths") |
943 self.repos = cleannames(cp.items("paths")) |
948 self.repos.sort() |
944 self.repos.sort() |
949 |
945 |
950 def run(self, req=hgrequest()): |
946 def run(self, req=hgrequest()): |
951 def header(**map): |
947 def header(**map): |
952 yield tmpl("header", **map) |
948 yield tmpl("header", **map) |
966 u.readconfig(file(os.path.join(path, '.hg', 'hgrc'))) |
962 u.readconfig(file(os.path.join(path, '.hg', 'hgrc'))) |
967 except IOError: |
963 except IOError: |
968 pass |
964 pass |
969 get = u.config |
965 get = u.config |
970 |
966 |
971 url = ('/'.join([req.env["REQUEST_URI"], name]) |
967 url = ('/'.join([req.env["REQUEST_URI"].split('?')[0], name]) |
972 .replace("//", "/")) |
968 .replace("//", "/")) |
973 |
969 |
974 yield dict(contact=get("web", "contact") or |
970 yield dict(contact=get("web", "contact") or |
975 get("web", "author", "unknown"), |
971 get("web", "author", "unknown"), |
976 name=get("web", "name", name), |
972 name=get("web", "name", name), |