comparison mercurial/hgweb.py @ 515:03f27b1381f9

Whitespace cleanups -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Whitespace cleanups manifest hash: ac954bc3a4f034c12638a259ecd65841f5b63c5c -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCwuubywK+sNU5EO8RAluIAJ98XQpNdZUpSmYKgDmrMRlbL76ZzQCfes0t rknNUN/PhtyA4bzL646dOz4= =UyCE -----END PGP SIGNATURE-----
author mpm@selenic.com
date Wed, 29 Jun 2005 10:42:35 -0800
parents 5f65a108a559
children b8404005d6d5 eda4c32c167a
comparison
equal deleted inserted replaced
514:874e577e332e 515:03f27b1381f9
74 74
75 fl = m.group(2) 75 fl = m.group(2)
76 if fl: 76 if fl:
77 for f in fl.split("|")[1:]: 77 for f in fl.split("|")[1:]:
78 v = filters[f](v) 78 v = filters[f](v)
79 79
80 yield v 80 yield v
81 tmpl = tmpl[m.end(0):] 81 tmpl = tmpl[m.end(0):]
82 else: 82 else:
83 yield tmpl 83 yield tmpl
84 return 84 return
87 def __init__(self, mapfile, filters = {}): 87 def __init__(self, mapfile, filters = {}):
88 self.cache = {} 88 self.cache = {}
89 self.map = {} 89 self.map = {}
90 self.base = os.path.dirname(mapfile) 90 self.base = os.path.dirname(mapfile)
91 self.filters = filters 91 self.filters = filters
92 92
93 for l in file(mapfile): 93 for l in file(mapfile):
94 m = re.match(r'(\S+)\s*=\s*"(.*)"$', l) 94 m = re.match(r'(\S+)\s*=\s*"(.*)"$', l)
95 if m: 95 if m:
96 self.cache[m.group(1)] = m.group(2) 96 self.cache[m.group(1)] = m.group(2)
97 else: 97 else:
105 try: 105 try:
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 class hgweb: 111 class hgweb:
112 maxchanges = 10 112 maxchanges = 10
113 maxfiles = 10 113 maxfiles = 10
114 114
115 def __init__(self, path, name, templates = ""): 115 def __init__(self, path, name, templates = ""):
156 yield self.t(t1, node = node, rev = rev, **args) 156 yield self.t(t1, node = node, rev = rev, **args)
157 157
158 def diff(self, node1, node2, files): 158 def diff(self, node1, node2, files):
159 def filterfiles(list, files): 159 def filterfiles(list, files):
160 l = [ x for x in list if x in files ] 160 l = [ x for x in list if x in files ]
161 161
162 for f in files: 162 for f in files:
163 if f[-1] != os.sep: f += os.sep 163 if f[-1] != os.sep: f += os.sep
164 l += [ x for x in list if x.startswith(f) ] 164 l += [ x for x in list if x.startswith(f) ]
165 return l 165 return l
166 166
170 lines = prettyprintlines(diff), 170 lines = prettyprintlines(diff),
171 parity = parity[0], 171 parity = parity[0],
172 file = f, 172 file = f,
173 filenode = hex(fn or nullid)) 173 filenode = hex(fn or nullid))
174 parity[0] = 1 - parity[0] 174 parity[0] = 1 - parity[0]
175 175
176 def prettyprintlines(diff): 176 def prettyprintlines(diff):
177 for l in diff.splitlines(1): 177 for l in diff.splitlines(1):
178 if l.startswith('+'): 178 if l.startswith('+'):
179 yield self.t("difflineplus", line = l) 179 yield self.t("difflineplus", line = l)
180 elif l.startswith('-'): 180 elif l.startswith('-'):
232 r = "%d" % f 232 r = "%d" % f
233 if pos + f < count: l.append(("+" + r, pos + f)) 233 if pos + f < count: l.append(("+" + r, pos + f))
234 if pos - f >= 0: l.insert(0, ("-" + r, pos - f)) 234 if pos - f >= 0: l.insert(0, ("-" + r, pos - f))
235 235
236 yield self.t("naventry", rev = 0, label="(0)") 236 yield self.t("naventry", rev = 0, label="(0)")
237 237
238 for label, rev in l: 238 for label, rev in l:
239 yield self.t("naventry", label = label, rev = rev) 239 yield self.t("naventry", label = label, rev = rev)
240 240
241 yield self.t("naventry", label="tip") 241 yield self.t("naventry", label="tip")
242 242
291 cl = self.repo.changelog 291 cl = self.repo.changelog
292 changes = cl.read(n) 292 changes = cl.read(n)
293 p1, p2 = cl.parents(n) 293 p1, p2 = cl.parents(n)
294 p1rev, p2rev = cl.rev(p1), cl.rev(p2) 294 p1rev, p2rev = cl.rev(p1), cl.rev(p2)
295 t = float(changes[2].split(' ')[0]) 295 t = float(changes[2].split(' ')[0])
296 296
297 files = [] 297 files = []
298 mf = self.repo.manifest.read(changes[0]) 298 mf = self.repo.manifest.read(changes[0])
299 for f in changes[3]: 299 for f in changes[3]:
300 files.append(self.t("filenodelink", 300 files.append(self.t("filenodelink",
301 filenode = hex(mf.get(f, nullid)), file = f)) 301 filenode = hex(mf.get(f, nullid)), file = f))
328 count = fl.count() 328 count = fl.count()
329 329
330 def entries(): 330 def entries():
331 l = [] 331 l = []
332 parity = (count - 1) & 1 332 parity = (count - 1) & 1
333 333
334 for i in range(count): 334 for i in range(count):
335 335
336 n = fl.node(i) 336 n = fl.node(i)
337 lr = fl.linkrev(n) 337 lr = fl.linkrev(n)
338 cn = cl.node(lr) 338 cn = cl.node(lr)
421 for r, l in fl.annotate(n): 421 for r, l in fl.annotate(n):
422 try: 422 try:
423 cnode = ncache[r] 423 cnode = ncache[r]
424 except KeyError: 424 except KeyError:
425 cnode = ncache[r] = self.repo.changelog.node(r) 425 cnode = ncache[r] = self.repo.changelog.node(r)
426 426
427 try: 427 try:
428 name = bcache[r] 428 name = bcache[r]
429 except KeyError: 429 except KeyError:
430 cl = self.repo.changelog.read(cnode) 430 cl = self.repo.changelog.read(cnode)
431 name = cl[1] 431 name = cl[1]
472 rev = self.repo.manifest.rev(bin(mnode)) 472 rev = self.repo.manifest.rev(bin(mnode))
473 node = self.repo.changelog.node(rev) 473 node = self.repo.changelog.node(rev)
474 mff=self.repo.manifest.readflags(bin(mnode)) 474 mff=self.repo.manifest.readflags(bin(mnode))
475 475
476 files = {} 476 files = {}
477 477
478 p = path[1:] 478 p = path[1:]
479 l = len(p) 479 l = len(p)
480 480
481 for f,n in mf.items(): 481 for f,n in mf.items():
482 if f[:l] != p: 482 if f[:l] != p:
499 yield self.t("manifestfileentry", 499 yield self.t("manifestfileentry",
500 file = full, 500 file = full,
501 manifest = mnode, 501 manifest = mnode,
502 filenode = hex(fnode), 502 filenode = hex(fnode),
503 parity = parity, 503 parity = parity,
504 basename = f, 504 basename = f,
505 permissions = mff[full]) 505 permissions = mff[full])
506 else: 506 else:
507 yield self.t("manifestdirentry", 507 yield self.t("manifestdirentry",
508 parity = parity, 508 parity = parity,
509 path = os.path.join(path, f), 509 path = os.path.join(path, f),
548 n = bin(changeset) 548 n = bin(changeset)
549 cl = self.repo.changelog 549 cl = self.repo.changelog
550 p1 = cl.parents(n)[0] 550 p1 = cl.parents(n)[0]
551 cs = cl.read(n) 551 cs = cl.read(n)
552 mf = self.repo.manifest.read(cs[0]) 552 mf = self.repo.manifest.read(cs[0])
553 553
554 def diff(): 554 def diff():
555 yield self.diff(p1, n, file) 555 yield self.diff(p1, n, file)
556 556
557 yield self.t("filediff", 557 yield self.t("filediff",
558 header = self.header(), 558 header = self.header(),
563 node = changeset, 563 node = changeset,
564 rev = self.repo.changelog.rev(n), 564 rev = self.repo.changelog.rev(n),
565 p1 = hex(p1), 565 p1 = hex(p1),
566 p1rev = self.repo.changelog.rev(p1), 566 p1rev = self.repo.changelog.rev(p1),
567 diff = diff) 567 diff = diff)
568 568
569 # add tags to things 569 # add tags to things
570 # tags -> list of changesets corresponding to tags 570 # tags -> list of changesets corresponding to tags
571 # find tag, changeset, file 571 # find tag, changeset, file
572 572
573 def run(self): 573 def run(self):
577 m = os.path.join(self.templates, "map") 577 m = os.path.join(self.templates, "map")
578 if args.has_key('style'): 578 if args.has_key('style'):
579 b = os.path.basename("map-" + args['style'][0]) 579 b = os.path.basename("map-" + args['style'][0])
580 p = os.path.join(self.templates, b) 580 p = os.path.join(self.templates, b)
581 if os.path.isfile(p): m = p 581 if os.path.isfile(p): m = p
582 582
583 self.t = templater(m, self.filters) 583 self.t = templater(m, self.filters)
584 584
585 if not args.has_key('cmd') or args['cmd'][0] == 'changelog': 585 if not args.has_key('cmd') or args['cmd'][0] == 'changelog':
586 hi = self.repo.changelog.count() - 1 586 hi = self.repo.changelog.count() - 1
587 if args.has_key('rev'): 587 if args.has_key('rev'):
589 try: 589 try:
590 hi = self.repo.changelog.rev(self.repo.lookup(hi)) 590 hi = self.repo.changelog.rev(self.repo.lookup(hi))
591 except KeyError: pass 591 except KeyError: pass
592 592
593 write(self.changelog(hi)) 593 write(self.changelog(hi))
594 594
595 elif args['cmd'][0] == 'changeset': 595 elif args['cmd'][0] == 'changeset':
596 write(self.changeset(args['node'][0])) 596 write(self.changeset(args['node'][0]))
597 597
598 elif args['cmd'][0] == 'manifest': 598 elif args['cmd'][0] == 'manifest':
599 write(self.manifest(args['manifest'][0], args['path'][0])) 599 write(self.manifest(args['manifest'][0], args['path'][0]))
672 query = "" 672 query = ""
673 p = self.path.find("?") 673 p = self.path.find("?")
674 if p: 674 if p:
675 query = self.path[p + 1:] 675 query = self.path[p + 1:]
676 query = query.replace('+', ' ') 676 query = query.replace('+', ' ')
677 677
678 env = {} 678 env = {}
679 env['GATEWAY_INTERFACE'] = 'CGI/1.1' 679 env['GATEWAY_INTERFACE'] = 'CGI/1.1'
680 env['REQUEST_METHOD'] = self.command 680 env['REQUEST_METHOD'] = self.command
681 if query: 681 if query:
682 env['QUERY_STRING'] = query 682 env['QUERY_STRING'] = query