comparison mercurial/hgweb.py @ 1142:74d184a40a2e

Cleaned up hgweb.hgwebdir.run()
author Thomas Arendsen Hein <thomas@intevation.de>
date Mon, 29 Aug 2005 07:34:35 +0200
parents 033c968d7c66
children 4fffb3d84b7c
comparison
equal deleted inserted replaced
1141:033c968d7c66 1142:74d184a40a2e
932 yield tmpl("header", **map) 932 yield tmpl("header", **map)
933 933
934 def footer(**map): 934 def footer(**map):
935 yield tmpl("footer", **map) 935 yield tmpl("footer", **map)
936 936
937 templates = templatepath() 937 m = os.path.join(templatepath(), "map")
938 m = os.path.join(templates, "map")
939 tmpl = templater(m, common_filters, 938 tmpl = templater(m, common_filters,
940 {"header": header, "footer": footer}) 939 {"header": header, "footer": footer})
941 940
942 def entries(**map): 941 def entries(**map):
943 parity = 0 942 parity = 0
944 for name, path in self.repos: 943 for name, path in self.repos:
945 u = ui() 944 u = ui()
946 u.readconfig(file(os.path.join(path, '.hg', 'hgrc'))) 945 u.readconfig(file(os.path.join(path, '.hg', 'hgrc')))
947 get = u.config 946 get = u.config
948 947
949 url = os.environ["REQUEST_URI"] + "/" + name 948 url = ('/'.join([os.environ["REQUEST_URI"], name])
950 url = url.replace("//", "/") 949 .replace("//", "/"))
951 950
952 yield dict(contact=get("web", "contact") or 951 yield dict(contact=get("web", "contact") or
953 get("web", "author", "unknown"), 952 get("web", "author", "unknown"),
954 name=get("web", "name", name), 953 name=get("web", "name", name),
955 url=url, 954 url=url,
956 parity=parity, 955 parity=parity,
957 shortdesc=get("web", "description", "unknown"), 956 shortdesc=get("web", "description", "unknown"),
958 lastupdate=os.stat(os.path.join(path, ".hg", 957 lastupdate=os.stat(os.path.join(path, ".hg",
959 "00changelog.d")).st_mtime) 958 "00changelog.d")).st_mtime)
960 959
961 parity = 1 - parity 960 parity = 1 - parity
962 961
963 try: 962 virtual = os.environ.get("PATH_INFO", "").strip('/')
964 virtual = os.environ["PATH_INFO"] 963 if virtual:
965 except:
966 virtual = ""
967
968 virtual = virtual.strip('/')
969
970 if len(virtual):
971 real = dict(self.repos).get(virtual) 964 real = dict(self.repos).get(virtual)
972 if real: 965 if real:
973 h = hgweb(real) 966 hgweb(real).run()
974 h.run()
975 return
976 else: 967 else:
977 write(tmpl("notfound", repo = virtual)) 968 write(tmpl("notfound", repo=virtual))
978 return 969 else:
979 970 write(tmpl("index", entries=entries))
980 write(tmpl("index", entries=entries))