##// END OF EJS Templates
server: move service factory from hgweb
Yuya Nishihara -
r30509:add7bcad default
parent child Browse files
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 = hgweb.createservice(ui, repo, opts)
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