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

Unified Diff: mojo/devtools/common/devtoolslib/shell_arguments.py

Issue 1844943004: devtools: download shell binaries and set origin when run w/ --mojo-version. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/devtools/common/devtoolslib/paths.py ('k') | mojo/devtools/common/devtoolslib/shell_config.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/devtools/common/devtoolslib/shell_arguments.py
diff --git a/mojo/devtools/common/devtoolslib/shell_arguments.py b/mojo/devtools/common/devtoolslib/shell_arguments.py
index 616615bb51164890a98efd207beefdb2643812bd..fd012f229fa126db7605b571b9659e634bcb0803 100644
--- a/mojo/devtools/common/devtoolslib/shell_arguments.py
+++ b/mojo/devtools/common/devtoolslib/shell_arguments.py
@@ -11,6 +11,8 @@ shell_config.ShellConfig.
import os.path
import urlparse
+from devtoolslib import download
+from devtoolslib import paths
from devtoolslib.android_shell import AndroidShell
from devtoolslib.linux_shell import LinuxShell
from devtoolslib.shell_config import ShellConfigurationException
@@ -193,6 +195,20 @@ def get_shell(shell_config, shell_args):
Throws:
ShellConfigurationException if shell abstraction could not be configured.
"""
+ platform = 'android-arm' if shell_config.android else 'linux-x64'
+
+ shell_path = shell_config.shell_path
+ if not shell_path and shell_config.mojo_version:
+ download_dir = os.path.join(paths.DEVTOOLS_ROOT, '_prebuilt')
+ shell_path = download.download_shell(shell_config.mojo_version, platform,
+ download_dir, shell_config.verbose)
+ if shell_config.verbose:
+ if shell_path:
+ print('Using shell binary at ' + shell_path)
+ else:
+ print('No shell path given, only running on Android with pre-installed '
+ 'shell will be possible.')
+
if shell_config.android:
shell = AndroidShell(shell_config.adb_path, shell_config.target_device,
logcat_tags=shell_config.logcat_tags,
@@ -201,13 +217,14 @@ def get_shell(shell_config, shell_args):
device_status, error = shell.check_device()
if not device_status:
raise ShellConfigurationException('Device check failed: ' + error)
- if shell_config.shell_path:
- shell.install_apk(shell_config.shell_path)
+ if shell_path:
+ shell.install_apk(shell_path)
else:
- if not shell_config.shell_path:
+ if not shell_path:
raise ShellConfigurationException('Can not run without a shell binary. '
- 'Please pass --shell-path.')
- shell = LinuxShell(shell_config.shell_path)
+ 'Please pass --mojo-version or '
+ '--shell-path.')
+ shell = LinuxShell(shell_path)
if shell_config.use_osmesa:
shell_args.append('--args-for=mojo:native_viewport_service --use-osmesa')
@@ -215,7 +232,9 @@ def get_shell(shell_config, shell_args):
shell_config.map_origin_list,
shell_config.reuse_servers)
+ # Configure origin for mojo: urls.
if shell_config.origin:
+ # If origin was set on the command line, this takes precedence.
if _is_web_url(shell_config.origin):
shell_args.append('--origin=' + shell_config.origin)
else:
@@ -223,6 +242,13 @@ def get_shell(shell_config, shell_args):
shell_args.extend(configure_local_origin(shell, shell_config.origin,
local_origin_port,
shell_config.reuse_servers))
+ elif shell_config.mojo_version:
+ # Otherwise we infer the origin from the mojo_version.
+ web_origin = "https://storage.googleapis.com/mojo/services/%s/%s" % (
+ platform, shell_config.mojo_version)
+ if shell_config.verbose:
+ print('Inferring origin from `MOJO_VERSION` as: ' + web_origin)
+ shell_args.append('--origin=' + web_origin)
if shell_config.content_handlers:
for (mime_type,
« no previous file with comments | « mojo/devtools/common/devtoolslib/paths.py ('k') | mojo/devtools/common/devtoolslib/shell_config.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698