comparison mercurial/hgweb/hgweb_mod.py @ 6780:4c1d67e0fa8c

hgweb: move capabilities calculation back into hgweb.protocol
author Dirkjan Ochtman <dirkjan@ochtman.nl>
date Sun, 29 Jun 2008 11:35:08 +0200
parents d3147b4e3e8a
children b4b7261164d5
comparison
equal deleted inserted replaced
6779:d3147b4e3e8a 6780:4c1d67e0fa8c
8 8
9 import os, mimetypes 9 import os, mimetypes
10 from mercurial.node import hex, nullid 10 from mercurial.node import hex, nullid
11 from mercurial.repo import RepoError 11 from mercurial.repo import RepoError
12 from mercurial import mdiff, ui, hg, util, patch, hook 12 from mercurial import mdiff, ui, hg, util, patch, hook
13 from mercurial import revlog, templater, templatefilters, changegroup 13 from mercurial import revlog, templater, templatefilters
14 from common import get_mtime, style_map, paritygen, countgen, ErrorResponse 14 from common import get_mtime, style_map, paritygen, countgen, ErrorResponse
15 from common import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_SERVER_ERROR 15 from common import HTTP_OK, HTTP_BAD_REQUEST, HTTP_NOT_FOUND, HTTP_SERVER_ERROR
16 from request import wsgirequest 16 from request import wsgirequest
17 import webcommands, protocol, webutil 17 import webcommands, protocol, webutil
18 18
34 hook.redirect(True) 34 hook.redirect(True)
35 self.mtime = -1 35 self.mtime = -1
36 self.reponame = name 36 self.reponame = name
37 self.archives = 'zip', 'gz', 'bz2' 37 self.archives = 'zip', 'gz', 'bz2'
38 self.stripecount = 1 38 self.stripecount = 1
39 self._capabilities = None
40 # a repo owner may set web.templates in .hg/hgrc to get any file 39 # a repo owner may set web.templates in .hg/hgrc to get any file
41 # readable by the user running the CGI script 40 # readable by the user running the CGI script
42 self.templatepath = self.config("web", "templates", 41 self.templatepath = self.config("web", "templates",
43 templater.templatepath(), 42 templater.templatepath(),
44 untrusted=False) 43 untrusted=False)
66 self.stripecount = int(self.config("web", "stripes", 1)) 65 self.stripecount = int(self.config("web", "stripes", 1))
67 self.maxshortchanges = int(self.config("web", "maxshortchanges", 60)) 66 self.maxshortchanges = int(self.config("web", "maxshortchanges", 60))
68 self.maxfiles = int(self.config("web", "maxfiles", 10)) 67 self.maxfiles = int(self.config("web", "maxfiles", 10))
69 self.allowpull = self.configbool("web", "allowpull", True) 68 self.allowpull = self.configbool("web", "allowpull", True)
70 self.encoding = self.config("web", "encoding", util._encoding) 69 self.encoding = self.config("web", "encoding", util._encoding)
71 self._capabilities = None
72
73 def capabilities(self):
74 if self._capabilities is not None:
75 return self._capabilities
76 caps = ['lookup', 'changegroupsubset']
77 if self.configbool('server', 'uncompressed'):
78 caps.append('stream=%d' % self.repo.changelog.version)
79 if changegroup.bundlepriority:
80 caps.append('unbundle=%s' % ','.join(changegroup.bundlepriority))
81 self._capabilities = caps
82 return caps
83 70
84 def run(self): 71 def run(self):
85 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."): 72 if not os.environ.get('GATEWAY_INTERFACE', '').startswith("CGI/1."):
86 raise RuntimeError("This function is only intended to be called while running as a CGI script.") 73 raise RuntimeError("This function is only intended to be called while running as a CGI script.")
87 import mercurial.hgweb.wsgicgi as wsgicgi 74 import mercurial.hgweb.wsgicgi as wsgicgi