Mercurial > public > mercurial-scm > hg
comparison mercurial/hgweb.py @ 1123:457c23af92bd
Use a template for the error message.
author | Ollivier Robert <roberto@keltia.freenix.fr> |
---|---|
date | Sat, 27 Aug 2005 23:44:15 -0700 |
parents | fb008a1a0a32 |
children | ee4f60abad93 |
comparison
equal
deleted
inserted
replaced
1122:fb008a1a0a32 | 1123:457c23af92bd |
---|---|
66 sys.stdout.write('Content-disposition: attachment; filename=%s\n' | 66 sys.stdout.write('Content-disposition: attachment; filename=%s\n' |
67 % file) | 67 % file) |
68 if size > 0: | 68 if size > 0: |
69 sys.stdout.write('Content-length: %d\n' % size) | 69 sys.stdout.write('Content-length: %d\n' % size) |
70 sys.stdout.write('\n') | 70 sys.stdout.write('\n') |
71 | |
72 def httpnotfound(filename): | |
73 sys.stdout.write("Status: 404\r\n\r\n") | |
74 sys.stdout.write("File not found: (%s)" % (filename, )) | |
75 | 71 |
76 def write(*things): | 72 def write(*things): |
77 for thing in things: | 73 for thing in things: |
78 if hasattr(thing, "__iter__"): | 74 if hasattr(thing, "__iter__"): |
79 for part in thing: | 75 for part in thing: |
935 def __init__(self, config): | 931 def __init__(self, config): |
936 self.cp = ConfigParser.SafeConfigParser() | 932 self.cp = ConfigParser.SafeConfigParser() |
937 self.cp.read(config) | 933 self.cp.read(config) |
938 | 934 |
939 def run(self): | 935 def run(self): |
936 def header(**map): | |
937 yield tmpl("header", **map) | |
938 | |
939 def footer(**map): | |
940 yield tmpl("footer", **map) | |
941 | |
942 templates = templatepath() | |
943 m = os.path.join(templates, "map") | |
944 tmpl = templater(m, common_filters, | |
945 {"header": header, "footer": footer}) | |
946 | |
947 def entries(**map): | |
948 parity = 0 | |
949 l = self.cp.items("paths") | |
950 l.sort() | |
951 for v,r in l: | |
952 cp2 = ConfigParser.SafeConfigParser() | |
953 cp2.read(os.path.join(r, ".hg", "hgrc")) | |
954 | |
955 def get(sec, val, default): | |
956 try: | |
957 return cp2.get(sec, val) | |
958 except: | |
959 return default | |
960 | |
961 url = os.environ["REQUEST_URI"] + "/" + v | |
962 url = url.replace("//", "/") | |
963 | |
964 yield dict(author=get("web", "author", "unknown"), | |
965 name=get("web", "name", v), | |
966 url=url, | |
967 parity=parity, | |
968 shortdesc=get("web", "description", "unknown"), | |
969 lastupdate=os.stat(os.path.join(r, ".hg", | |
970 "00changelog.d")).st_mtime) | |
971 | |
972 parity = 1 - parity | |
973 | |
940 try: | 974 try: |
941 virtual = os.environ["PATH_INFO"] | 975 virtual = os.environ["PATH_INFO"] |
942 except: | 976 except: |
943 virtual = "" | 977 virtual = "" |
944 | 978 |
949 real = self.cp.get("paths", virtual) | 983 real = self.cp.get("paths", virtual) |
950 h = hgweb(real) | 984 h = hgweb(real) |
951 h.run() | 985 h.run() |
952 return | 986 return |
953 else: | 987 else: |
954 httpnotfound(virtual) | 988 write(tmpl("notfound", repo = virtual)) |
955 return | 989 return |
956 | 990 |
957 def header(**map): | |
958 yield tmpl("header", **map) | |
959 | |
960 def footer(**map): | |
961 yield tmpl("footer", **map) | |
962 | |
963 templates = templatepath() | |
964 m = os.path.join(templates, "map") | |
965 tmpl = templater(m, common_filters, | |
966 {"header": header, "footer": footer}) | |
967 | |
968 def entries(**map): | |
969 parity = 0 | |
970 l = self.cp.items("paths") | |
971 l.sort() | |
972 for v,r in l: | |
973 cp2 = ConfigParser.SafeConfigParser() | |
974 cp2.read(os.path.join(r, ".hg", "hgrc")) | |
975 | |
976 def get(sec, val, default): | |
977 try: | |
978 return cp2.get(sec, val) | |
979 except: | |
980 return default | |
981 | |
982 url = os.environ["REQUEST_URI"] + "/" + v | |
983 url = url.replace("//", "/") | |
984 | |
985 yield dict(author=get("web", "author", "unknown"), | |
986 name=get("web", "name", v), | |
987 url=url, | |
988 parity=parity, | |
989 shortdesc=get("web", "description", "unknown"), | |
990 lastupdate=os.stat(os.path.join(r, ".hg", | |
991 "00changelog.d")).st_mtime) | |
992 | |
993 parity = 1 - parity | |
994 | |
995 write(tmpl("index", entries=entries)) | 991 write(tmpl("index", entries=entries)) |