mercurial/hgweb/hgweb_mod.py
changeset 2514 419c42223bee
parent 2509 6350b01d173f
child 2534 d5a3cc6520d5
equal deleted inserted replaced
2513:f22e3e8fd457 2514:419c42223bee
     8 
     8 
     9 import os
     9 import os
    10 import os.path
    10 import os.path
    11 import mimetypes
    11 import mimetypes
    12 from mercurial.demandload import demandload
    12 from mercurial.demandload import demandload
    13 demandload(globals(), "re zlib ConfigParser cStringIO sys tempfile")
    13 demandload(globals(), "re zlib ConfigParser mimetools cStringIO sys tempfile")
    14 demandload(globals(), "mercurial:mdiff,ui,hg,util,archival,templater")
    14 demandload(globals(), "mercurial:mdiff,ui,hg,util,archival,templater")
    15 demandload(globals(), "mercurial.hgweb.common:get_mtime,staticfile")
    15 demandload(globals(), "mercurial.hgweb.common:get_mtime,staticfile")
    16 from mercurial.node import *
    16 from mercurial.node import *
    17 from mercurial.i18n import gettext as _
    17 from mercurial.i18n import gettext as _
    18 
    18 
   650             raise Exception("suspicious path")
   650             raise Exception("suspicious path")
   651         return p
   651         return p
   652 
   652 
   653     def run(self, req):
   653     def run(self, req):
   654         def header(**map):
   654         def header(**map):
   655             yield self.t("header", **map)
   655             header_file = cStringIO.StringIO(''.join(self.t("header", **map)))
       
   656             msg = mimetools.Message(header_file, 0)
       
   657             req.header(msg.items())
       
   658             yield header_file.read()
   656 
   659 
   657         def footer(**map):
   660         def footer(**map):
   658             yield self.t("footer",
   661             yield self.t("footer",
   659                          motd=self.repo.ui.config("web", "motd", ""),
   662                          motd=self.repo.ui.config("web", "motd", ""),
   660                          **map)
   663                          **map)
   826     def do_static(self, req):
   829     def do_static(self, req):
   827         fname = req.form['file'][0]
   830         fname = req.form['file'][0]
   828         static = self.repo.ui.config("web", "static",
   831         static = self.repo.ui.config("web", "static",
   829                                      os.path.join(self.templatepath,
   832                                      os.path.join(self.templatepath,
   830                                                   "static"))
   833                                                   "static"))
   831         req.write(staticfile(static, fname)
   834         req.write(staticfile(static, fname, req)
   832                   or self.t("error", error="%r not found" % fname))
   835                   or self.t("error", error="%r not found" % fname))
   833 
   836 
   834     def do_capabilities(self, req):
   837     def do_capabilities(self, req):
   835         resp = 'unbundle'
   838         resp = 'unbundle'
   836         req.httphdr("application/mercurial-0.1", length=len(resp))
   839         req.httphdr("application/mercurial-0.1", length=len(resp))