equal
deleted
inserted
replaced
106 tmpl = self.cache[t] |
106 tmpl = self.cache[t] |
107 except KeyError: |
107 except KeyError: |
108 tmpl = self.cache[t] = file(self.map[t]).read() |
108 tmpl = self.cache[t] = file(self.map[t]).read() |
109 return template(tmpl, self.filters, **map) |
109 return template(tmpl, self.filters, **map) |
110 |
110 |
|
111 def rfc822date(x): |
|
112 month= [None,"Jan", "Feb", "Mar", "Apr", "May", "Jun", |
|
113 "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] |
|
114 yyyy,mon,dd,hh,mm,ss,wd,x,y = time.gmtime(x) |
|
115 return "%d %s %d %d:%d:%d"%(dd, month[mon], yyyy, hh, mm, ss) |
|
116 |
111 class hgweb: |
117 class hgweb: |
112 maxchanges = 10 |
118 maxchanges = 10 |
113 maxfiles = 10 |
119 maxfiles = 10 |
114 |
120 |
115 def __init__(self, path, name, templates = ""): |
121 def __init__(self, path, name, templates = ""): |
125 "date": (lambda x: time.asctime(time.gmtime(x))), |
131 "date": (lambda x: time.asctime(time.gmtime(x))), |
126 "addbreaks": nl2br, |
132 "addbreaks": nl2br, |
127 "obfuscate": obfuscate, |
133 "obfuscate": obfuscate, |
128 "short": (lambda x: x[:12]), |
134 "short": (lambda x: x[:12]), |
129 "firstline": (lambda x: x.splitlines(1)[0]), |
135 "firstline": (lambda x: x.splitlines(1)[0]), |
130 "permissions": (lambda x: x and "-rwxr-xr-x" or "-rw-r--r--") |
136 "permissions": (lambda x: x and "-rwxr-xr-x" or "-rw-r--r--"), |
|
137 "rfc822date": rfc822date, |
131 } |
138 } |
132 |
139 |
133 def refresh(self): |
140 def refresh(self): |
134 s = os.stat(os.path.join(self.path, ".hg", "00changelog.i")) |
141 s = os.stat(os.path.join(self.path, ".hg", "00changelog.i")) |
135 if s.st_mtime != self.mtime: |
142 if s.st_mtime != self.mtime: |
215 to = r.file(f).read(mmap1[f]) |
222 to = r.file(f).read(mmap1[f]) |
216 tn = None |
223 tn = None |
217 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) |
224 yield diffblock(mdiff.unidiff(to, date1, tn, date2, f), f, tn) |
218 |
225 |
219 def header(self): |
226 def header(self): |
220 yield self.t("header", repo = self.reponame) |
227 port = os.environ["SERVER_PORT"] |
|
228 port = port != "80" and (":" + port) or "" |
|
229 self.url = "http://%s%s%s" % \ |
|
230 (os.environ["SERVER_NAME"], port, os.environ["REQUEST_URI"]) |
|
231 |
|
232 yield self.t("header", repo = self.reponame, url = self.url) |
221 |
233 |
222 def footer(self): |
234 def footer(self): |
223 yield self.t("footer", repo = self.reponame) |
235 yield self.t("footer", repo = self.reponame) |
224 |
236 |
225 def changelog(self, pos): |
237 def changelog(self, pos): |
727 query = query.replace('+', ' ') |
739 query = query.replace('+', ' ') |
728 |
740 |
729 env = {} |
741 env = {} |
730 env['GATEWAY_INTERFACE'] = 'CGI/1.1' |
742 env['GATEWAY_INTERFACE'] = 'CGI/1.1' |
731 env['REQUEST_METHOD'] = self.command |
743 env['REQUEST_METHOD'] = self.command |
|
744 env['SERVER_NAME'] = self.server.server_name |
|
745 env['SERVER_PORT'] = str(self.server.server_port) |
|
746 env['REQUEST_URI'] = "/" |
732 if query: |
747 if query: |
733 env['QUERY_STRING'] = query |
748 env['QUERY_STRING'] = query |
734 host = self.address_string() |
749 host = self.address_string() |
735 if host != self.client_address[0]: |
750 if host != self.client_address[0]: |
736 env['REMOTE_HOST'] = host |
751 env['REMOTE_HOST'] = host |