Show More
@@ -51,7 +51,6 b' from . import (' | |||||
51 | hbisect, |
|
51 | hbisect, | |
52 | help, |
|
52 | help, | |
53 | hg, |
|
53 | hg, | |
54 | hgweb, |
|
|||
55 | localrepo, |
|
54 | localrepo, | |
56 | lock as lockmod, |
|
55 | lock as lockmod, | |
57 | merge as mergemod, |
|
56 | merge as mergemod, | |
@@ -6300,7 +6299,7 b' def serve(ui, repo, **opts):' | |||||
6300 | if opts["cmdserver"]: |
|
6299 | if opts["cmdserver"]: | |
6301 | service = server.createcmdservice(ui, repo, opts) |
|
6300 | service = server.createcmdservice(ui, repo, opts) | |
6302 | else: |
|
6301 | else: | |
6303 |
service = |
|
6302 | service = server.createhgwebservice(ui, repo, opts) | |
6304 | return server.runservice(opts, initfn=service.init, runfn=service.run) |
|
6303 | return server.runservice(opts, initfn=service.init, runfn=service.run) | |
6305 |
|
6304 | |||
6306 | @command('^status|st', |
|
6305 | @command('^status|st', |
@@ -85,39 +85,6 b' class httpservice(object):' | |||||
85 | def run(self): |
|
85 | def run(self): | |
86 | self.httpd.serve_forever() |
|
86 | self.httpd.serve_forever() | |
87 |
|
87 | |||
88 | def createservice(ui, repo, opts): |
|
|||
89 | # this way we can check if something was given in the command-line |
|
|||
90 | if opts.get('port'): |
|
|||
91 | opts['port'] = util.getport(opts.get('port')) |
|
|||
92 |
|
||||
93 | alluis = set([ui]) |
|
|||
94 | if repo: |
|
|||
95 | baseui = repo.baseui |
|
|||
96 | alluis.update([repo.baseui, repo.ui]) |
|
|||
97 | else: |
|
|||
98 | baseui = ui |
|
|||
99 | webconf = opts.get('web_conf') or opts.get('webdir_conf') |
|
|||
100 | if webconf: |
|
|||
101 | # load server settings (e.g. web.port) to "copied" ui, which allows |
|
|||
102 | # hgwebdir to reload webconf cleanly |
|
|||
103 | servui = ui.copy() |
|
|||
104 | servui.readconfig(webconf, sections=['web']) |
|
|||
105 | alluis.add(servui) |
|
|||
106 | else: |
|
|||
107 | servui = ui |
|
|||
108 |
|
||||
109 | optlist = ("name templates style address port prefix ipv6" |
|
|||
110 | " accesslog errorlog certificate encoding") |
|
|||
111 | for o in optlist.split(): |
|
|||
112 | val = opts.get(o, '') |
|
|||
113 | if val in (None, ''): # should check against default options instead |
|
|||
114 | continue |
|
|||
115 | for u in alluis: |
|
|||
116 | u.setconfig("web", o, val, 'serve') |
|
|||
117 |
|
||||
118 | app = createapp(baseui, repo, webconf) |
|
|||
119 | return httpservice(servui, app, opts) |
|
|||
120 |
|
||||
121 | def createapp(baseui, repo, webconf): |
|
88 | def createapp(baseui, repo, webconf): | |
122 | if webconf: |
|
89 | if webconf: | |
123 | return hgwebdir_mod.hgwebdir(webconf, baseui=baseui) |
|
90 | return hgwebdir_mod.hgwebdir(webconf, baseui=baseui) |
@@ -17,6 +17,7 b' from .i18n import _' | |||||
17 | from . import ( |
|
17 | from . import ( | |
18 | commandserver, |
|
18 | commandserver, | |
19 | error, |
|
19 | error, | |
|
20 | hgweb, | |||
20 | util, |
|
21 | util, | |
21 | ) |
|
22 | ) | |
22 |
|
23 | |||
@@ -118,3 +119,36 b' def createcmdservice(ui, repo, opts):' | |||||
118 | return _cmdservicemap[mode](ui, repo, opts) |
|
119 | return _cmdservicemap[mode](ui, repo, opts) | |
119 | except KeyError: |
|
120 | except KeyError: | |
120 | raise error.Abort(_('unknown mode %s') % mode) |
|
121 | raise error.Abort(_('unknown mode %s') % mode) | |
|
122 | ||||
|
123 | def createhgwebservice(ui, repo, opts): | |||
|
124 | # this way we can check if something was given in the command-line | |||
|
125 | if opts.get('port'): | |||
|
126 | opts['port'] = util.getport(opts.get('port')) | |||
|
127 | ||||
|
128 | alluis = set([ui]) | |||
|
129 | if repo: | |||
|
130 | baseui = repo.baseui | |||
|
131 | alluis.update([repo.baseui, repo.ui]) | |||
|
132 | else: | |||
|
133 | baseui = ui | |||
|
134 | webconf = opts.get('web_conf') or opts.get('webdir_conf') | |||
|
135 | if webconf: | |||
|
136 | # load server settings (e.g. web.port) to "copied" ui, which allows | |||
|
137 | # hgwebdir to reload webconf cleanly | |||
|
138 | servui = ui.copy() | |||
|
139 | servui.readconfig(webconf, sections=['web']) | |||
|
140 | alluis.add(servui) | |||
|
141 | else: | |||
|
142 | servui = ui | |||
|
143 | ||||
|
144 | optlist = ("name templates style address port prefix ipv6" | |||
|
145 | " accesslog errorlog certificate encoding") | |||
|
146 | for o in optlist.split(): | |||
|
147 | val = opts.get(o, '') | |||
|
148 | if val in (None, ''): # should check against default options instead | |||
|
149 | continue | |||
|
150 | for u in alluis: | |||
|
151 | u.setconfig("web", o, val, 'serve') | |||
|
152 | ||||
|
153 | app = hgweb.createapp(baseui, repo, webconf) | |||
|
154 | return hgweb.httpservice(servui, app, opts) |
General Comments 0
You need to be logged in to leave comments.
Login now