Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: mojo/devtools/common/devtoolslib/shell_arguments.py

Issue 1259793008: Support dev servers defined in a mojoconfig file. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Address Ben's comments. Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Produces configured shell abstractions. 5 """Produces configured shell abstractions.
6 6
7 This module knows how to produce a configured shell abstraction based on 7 This module knows how to produce a configured shell abstraction based on
8 shell_config.ShellConfig. 8 shell_config.ShellConfig.
9 """ 9 """
10 10
11 import os.path 11 import os.path
12 import sys 12 import sys
13 import urlparse 13 import urlparse
14 14
15 from devtoolslib.android_shell import AndroidShell 15 from devtoolslib.android_shell import AndroidShell
16 from devtoolslib.linux_shell import LinuxShell 16 from devtoolslib.linux_shell import LinuxShell
17 from devtoolslib.shell_config import ShellConfigurationException
17 18
18 # When spinning up servers for local origins, we want to use predictable ports 19 # When spinning up servers for local origins, we want to use predictable ports
19 # so that caching works between subsequent runs with the same command line. 20 # so that caching works between subsequent runs with the same command line.
20 _LOCAL_ORIGIN_PORT = 31840 21 _LOCAL_ORIGIN_PORT = 31840
21 _MAPPINGS_BASE_PORT = 31841 22 _MAPPINGS_BASE_PORT = 31841
22 23
23 24
24 class ShellConfigurationException(Exception):
25 """Represents an error preventing creating a functional shell abstraction."""
26 pass
27
28
29 def _is_web_url(dest): 25 def _is_web_url(dest):
30 return True if urlparse.urlparse(dest).scheme else False 26 return True if urlparse.urlparse(dest).scheme else False
31 27
32 28
33 def _host_local_url_destination(shell, dest_file, port): 29 def _host_local_url_destination(shell, dest_file, port):
34 """Starts a local server to host |dest_file|. 30 """Starts a local server to host |dest_file|.
35 31
36 Returns: 32 Returns:
37 Url of the hosted file. 33 Url of the hosted file.
38 """ 34 """
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 if not argument.startswith(key): 159 if not argument.startswith(key):
164 continue 160 continue
165 arguments[i] = argument + delimiter + value 161 arguments[i] = argument + delimiter + value
166 break 162 break
167 else: 163 else:
168 arguments.append(key + value) 164 arguments.append(key + value)
169 165
170 return arguments 166 return arguments
171 167
172 168
169 def _configure_dev_server(shell, shell_args, dev_server_config):
170 """Sets up a dev server on the host according to |dev_server_config|.
171
172 Args:
173 shell: The shell that is being configured.
174 shell_arguments: Current list of shell arguments.
175 dev_server_config: Instance of shell_config.DevServerConfig describing the
176 dev server to be set up.
177
178 Returns:
179 The updated argument list.
180 """
181 server_url = shell.serve_local_directories(dev_server_config.mappings)
182 shell_args.append('--map-origin=%s=%s' % (dev_server_config.host, server_url))
183 print "Configured %s locally as %s" % (dev_server_config.host, server_url)
184 for mapping_prefix, mapping_path in dev_server_config.mappings:
185 print " /%s -> %s" % (mapping_prefix, mapping_path)
186 return shell_args
187
188
173 def get_shell(shell_config, shell_args): 189 def get_shell(shell_config, shell_args):
174 """ 190 """
175 Produces a shell abstraction configured according to |shell_config|. 191 Produces a shell abstraction configured according to |shell_config|.
176 192
177 Args: 193 Args:
178 shell_config: Instance of shell_config.ShellConfig. 194 shell_config: Instance of shell_config.ShellConfig.
179 shell_args: Additional raw shell arguments to be passed to the shell. We 195 shell_args: Additional raw shell arguments to be passed to the shell. We
180 need to take these into account as some parameters need to appear only 196 need to take these into account as some parameters need to appear only
181 once on the argument list (e.g. url-mappings) so we need to coalesce any 197 once on the argument list (e.g. url-mappings) so we need to coalesce any
182 overrides and the existing value into just one argument. 198 overrides and the existing value into just one argument.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 if shell_config.origin: 230 if shell_config.origin:
215 if _is_web_url(shell_config.origin): 231 if _is_web_url(shell_config.origin):
216 shell_args.append('--origin=' + shell_config.origin) 232 shell_args.append('--origin=' + shell_config.origin)
217 else: 233 else:
218 shell_args.extend(configure_local_origin(shell, shell_config.origin, 234 shell_args.extend(configure_local_origin(shell, shell_config.origin,
219 fixed_port=True)) 235 fixed_port=True))
220 236
221 if shell_config.sky: 237 if shell_config.sky:
222 shell_args = _configure_sky(shell_args) 238 shell_args = _configure_sky(shell_args)
223 239
240 for dev_server_config in shell_config.dev_servers:
241 shell_args = _configure_dev_server(shell, shell_args, dev_server_config)
242
224 return shell, shell_args 243 return shell, shell_args
OLDNEW
« no previous file with comments | « mojo/devtools/common/devtoolslib/http_server.py ('k') | mojo/devtools/common/devtoolslib/shell_config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698