annotate talosnames/web.py @ 72:c4ba60b663fa default tip

make executable
author Jeff Hammel <jhammel@mozilla.com>
date Thu, 07 Mar 2013 11:22:20 -0800
parents 6e495bad69bb
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 #!/usr/bin/env python
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 """
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4 web handler for talosnames
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 """
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6
35
88d280049e2f stub parsing options
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
7 import optparse
19
aae0a420c4f7 should now actually do something
Jeff Hammel <jhammel@mozilla.com>
parents: 18
diff changeset
8 import os
22
Jeff Hammel <jhammel@mozilla.com>
parents: 21
diff changeset
9 import pprint
46
fcd98303a90d provide CLI handler for web
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
10 import sys
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
11 import talos.test
19
aae0a420c4f7 should now actually do something
Jeff Hammel <jhammel@mozilla.com>
parents: 18
diff changeset
12 import tempita
18
76a8d2bd4007 starting on web part
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
13 from api import TalosNames
31
c6580ad2612f better formatting of command
Jeff Hammel <jhammel@mozilla.com>
parents: 26
diff changeset
14 from subprocess import list2cmdline
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15 from webob import Request, Response, exc
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
17 try:
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
18 import json
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
19 except ImportError:
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
20 import simplejson as json
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
21
19
aae0a420c4f7 should now actually do something
Jeff Hammel <jhammel@mozilla.com>
parents: 18
diff changeset
22 here = os.path.dirname(os.path.abspath(__file__))
aae0a420c4f7 should now actually do something
Jeff Hammel <jhammel@mozilla.com>
parents: 18
diff changeset
23
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 class Handler(object):
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
26 paths = {'tbpl': 'tbpl.html'}
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
27
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
28 def __init__(self, **kw):
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
29
18
76a8d2bd4007 starting on web part
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
30 self.api = TalosNames()
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
31
25
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
32 # get data
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
33 suites = sorted(self.api.suites.keys())
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
34 tests = {}
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
35 for suite in suites:
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
36 try:
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
37 test = self.api.test_config(suite)
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
38 tests[suite] = test
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
39 except:
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
40 tests[suite] = None
40
10945dedde84 get query string working for TBPL suites
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
41 self.suites = suites
21
48b4c926be73 getting there
Jeff Hammel <jhammel@mozilla.com>
parents: 20
diff changeset
42
40
10945dedde84 get query string working for TBPL suites
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
43 self.data = {'suites': self.suites,
41
4dfa9c298e3d record whether a suite is enabled
Jeff Hammel <jhammel@mozilla.com>
parents: 40
diff changeset
44 'enabled': self.api.buildbot_enabled, # whether the suite is enabled by default
25
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
45 'commands': self.api.buildbot_commands,
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
46 'tbpl': dict([(suite, self.api.tbpl_name(suite))
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
47 for suite in suites]),
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
48 'tests': tests,
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
49 }
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
50
26
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
51 paint = {}
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
52 chrome = {}
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
53 graphserver = {}
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
54 test_type = {}
26
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
55 for suite in suites:
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
56 for test in tests.get(suite) or []:
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
57 config = self.api.talos_config(suite)
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
58 _paint = '--mozAfterPaint' in self.data['commands'][suite]
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
59 _chrome = '--noChrome' not in self.data['commands'][suite]
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
60 extension = config.get('test_name_extension', '')
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
61 _extension = ''
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
62 if not _chrome:
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
63 _extension += '_nochrome'
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
64 if _paint:
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
65 _extension += '_paint'
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
66 if extension != _extension:
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
67 raise AssertionError
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
68 paint[suite] = _paint
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
69 chrome[suite] = _chrome
36
c945731f06d0 better default value
Jeff Hammel <jhammel@mozilla.com>
parents: 35
diff changeset
70
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
71 # determine test extension
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
72 # TODO: move this to api.py
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
73 testname = test
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
74 testobj = talos.test.test_dict[testname]
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
75 if issubclass(testobj, talos.test.TsBase):
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
76 test_type.setdefault(suite, {})[test] = 'Startup Test'
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
77 elif issubclass(testobj, talos.test.PageloaderTest):
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
78 test_type.setdefault(suite, {})[test] = 'Page Load Test'
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
79 testname += extension
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
80 else:
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
81 raise Exception
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
82
36
c945731f06d0 better default value
Jeff Hammel <jhammel@mozilla.com>
parents: 35
diff changeset
83 # get graphserver data
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
84 names = self.api.graphserver_name(testname)
36
c945731f06d0 better default value
Jeff Hammel <jhammel@mozilla.com>
parents: 35
diff changeset
85 if names:
c945731f06d0 better default value
Jeff Hammel <jhammel@mozilla.com>
parents: 35
diff changeset
86 graphserver.setdefault(suite, {})[test] = [names]
c945731f06d0 better default value
Jeff Hammel <jhammel@mozilla.com>
parents: 35
diff changeset
87 else:
c945731f06d0 better default value
Jeff Hammel <jhammel@mozilla.com>
parents: 35
diff changeset
88 graphserver.setdefault(suite, {})[test] = None
26
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
89 self.data['graphserver'] = graphserver
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
90 self.data['paint'] = paint
c6a042aad739 fix some things
Jeff Hammel <jhammel@mozilla.com>
parents: 25
diff changeset
91 self.data['chrome'] = chrome
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
92 self.data['test_type'] = test_type
25
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
93
53
1d944da50135 expand the JSON to make it readable
Jeff Hammel <jhammel@mozilla.com>
parents: 47
diff changeset
94 self.data['json'] = json.dumps(self.data, indent=2, sort_keys=True)
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
95
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
96 self.data['list2cmdline'] = list2cmdline
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
97
25
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
98 def __call__(self, environ, start_response):
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
99 request = Request(environ)
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
100 response = Response(content_type='text/html',
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
101 body=self.render(request.path_info, request))
25
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
102 return response(environ, start_response)
6ec941f8704a css improvements
Jeff Hammel <jhammel@mozilla.com>
parents: 24
diff changeset
103
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
104 def render(self, template='index.html', request=None):
43
4e8c839dcdec filter by disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
105
4e8c839dcdec filter by disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
106 # make a local copy of the data
40
10945dedde84 get query string working for TBPL suites
Jeff Hammel <jhammel@mozilla.com>
parents: 38
diff changeset
107 data = self.data.copy()
43
4e8c839dcdec filter by disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
108
44
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
109 if request :
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
110 # filter by TBPL letter
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
111 if 'tbpl' in request.GET:
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
112 tbplnames = []
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
113 for name in request.GET.getall('tbpl'):
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
114 if not name.startswith('Talos'):
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
115 name = 'Talos ' + name
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
116 tbplnames.append(name)
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
117 suites = []
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
118 for suite, value in self.data['tbpl'].items():
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
119 if value in tbplnames:
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
120 suites.append(suite)
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
121 data['suites'] = sorted(suites)
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
122
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
123 # filter by disabled
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
124 if 'show' in request.GET:
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
125 show = request.GET['show']
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
126 if show == 'active':
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
127 data['suites'] = [i for i in data['suites']
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
128 if data['enabled'][i]]
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
129 elif show == 'disabled':
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
130 data['suites'] = [i for i in data['suites']
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
131 if not data['enabled'][i]]
10e59c3ae847 filter by active/disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 43
diff changeset
132
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
133 path = self.template_path(template)
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
134 contents = file(path).read()
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
135 template = tempita.HTMLTemplate(contents)
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
136 return template.substitute(data)
43
4e8c839dcdec filter by disabled
Jeff Hammel <jhammel@mozilla.com>
parents: 41
diff changeset
137
47
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
138 def template_path(self, path):
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
139 """returns template path"""
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
140 path = path.strip('/')
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
141 template = self.paths.get(path, 'index.html')
11249e75ced6 allow more than one template path
Jeff Hammel <jhammel@mozilla.com>
parents: 46
diff changeset
142 return os.path.join(here, 'templates', template)
19
aae0a420c4f7 should now actually do something
Jeff Hammel <jhammel@mozilla.com>
parents: 18
diff changeset
143
66
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
144 def paste_factory(global_conf, **app_conf):
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
145 """factory interface for paste"""
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
146 app = Handler(**app_conf)
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
147 return app
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
148
46
fcd98303a90d provide CLI handler for web
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
149 def main(args=sys.argv[1:]):
66
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
150 """CLI entry point"""
0f5c22c07146 add interface for paste since wsgiref falls over in production
Jeff Hammel <jhammel@mozilla.com>
parents: 54
diff changeset
151
35
88d280049e2f stub parsing options
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
152 parser = optparse.OptionParser()
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
153 parser.add_option('-o', '--output', dest='output',
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
154 help="file to output to")
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
155 parser.add_option('-p', '--port', dest='port',
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
156 default=8080, type='int',
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
157 help="port to serve on")
35
88d280049e2f stub parsing options
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
158 options, args = parser.parse_args()
88d280049e2f stub parsing options
Jeff Hammel <jhammel@mozilla.com>
parents: 32
diff changeset
159
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
160 app = Handler()
46
fcd98303a90d provide CLI handler for web
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
161 print "Done creating handler."
70
6e495bad69bb print out what you are serving
Jeff Hammel <jhammel@mozilla.com>
parents: 66
diff changeset
162 print "http://localhost:%s/" % options.port
38
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
163
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
164 if options.output:
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
165 f = file(options.output, 'w')
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
166 f.write(app.render())
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
167 f.close()
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
168 else:
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
169 from wsgiref import simple_server
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
170 server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app)
ef8590b55605 determine actually correct name extension
Jeff Hammel <jhammel@mozilla.com>
parents: 36
diff changeset
171 server.serve_forever()
0
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
172
18
76a8d2bd4007 starting on web part
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
173
46
fcd98303a90d provide CLI handler for web
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
174 if __name__ == '__main__':
fcd98303a90d provide CLI handler for web
Jeff Hammel <jhammel@mozilla.com>
parents: 44
diff changeset
175 main()