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

Side by Side Diff: mojo/devtools/common/mojo_shell

Issue 1241263009: Rename shell runner and debugger -> mojo_run, mojo_debug. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: 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
« no previous file with comments | « mojo/devtools/common/mojo_run ('k') | mojo/tools/mojo_shell.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 import argparse
7 import logging
8 import sys
9
10 from devtoolslib.android_shell import AndroidShell
11 from devtoolslib.linux_shell import LinuxShell
12 from devtoolslib import paths
13 from devtoolslib import shell_arguments
14
15 USAGE = ("mojo_shell "
16 "[--args-for=<mojo-app>] "
17 "[--content-handlers=<handlers>] "
18 "[--enable-external-applications] "
19 "[--disable-cache] "
20 "[--enable-multiprocess] "
21 "[--url-mappings=from1=to1,from2=to2] "
22 "[<mojo-app>] "
23 """
24
25 A <mojo-app> is a Mojo URL or a Mojo URL and arguments within quotes.
26 Example: mojo_shell "mojo:js_standalone test.js".
27 <url-lib-path> is searched for shared libraries named by mojo URLs.
28 The value of <handlers> is a comma separated list like:
29 text/html,mojo:html_viewer,application/javascript,mojo:js_content_handler
30 """)
31
32 _DEFAULT_WINDOW_MANAGER = "mojo:kiosk_wm"
33
34
35 def main():
36 logging.basicConfig()
37
38 parser = argparse.ArgumentParser(usage=USAGE)
39
40 # Arguments indicating the configuration we are targeting.
41 parser.add_argument('--android', help='Run on Android',
42 action='store_true')
43 debug_group = parser.add_mutually_exclusive_group()
44 debug_group.add_argument('--debug', help='Debug build (default)',
45 default=True, action='store_true')
46 debug_group.add_argument('--release', help='Release build', default=False,
47 dest='debug', action='store_false')
48 parser.add_argument('--target-cpu', help='CPU architecture to run for.',
49 choices=['x64', 'x86', 'arm'])
50
51 # Arguments configuring the shell run.
52 parser.add_argument('--origin', help='Origin for mojo: URLs.')
53 parser.add_argument('--window-manager', default=_DEFAULT_WINDOW_MANAGER,
54 help='Window manager app to be mapped as '
55 'mojo:window_manager. By default it is ' +
56 _DEFAULT_WINDOW_MANAGER)
57 parser.add_argument('--no-debugger', action="store_true",
58 help='Do not spawn mojo:debugger.')
59 parser.add_argument('--sky',
60 help='Loads the given Sky file.')
61 parser.add_argument('-v', '--verbose', action="store_true",
62 help="Increase output verbosity")
63
64 # Android-only arguments.
65 parser.add_argument('--target-device',
66 help='(android-only) Device to run on.')
67 parser.add_argument('--logcat-tags',
68 help='(android-only) Comma-separated list of additional '
69 'logcat tags to display on the console.')
70
71 # Desktop-only arguments.
72 parser.add_argument('--use-osmesa', action='store_true',
73 help='(linux-only) Configure the native viewport service '
74 'for off-screen rendering.')
75
76 launcher_args, args = parser.parse_known_args()
77 mojo_paths, _ = paths.infer_mojo_paths(launcher_args.android,
78 launcher_args.debug,
79 launcher_args.target_cpu)
80 if mojo_paths:
81 adb_path = mojo_paths['adb']
82 shell_binary_path = mojo_paths['shell']
83 local_origin_path = mojo_paths['build']
84 if launcher_args.verbose:
85 print 'Running within a Mojo checkout:'
86 print ' - using the locally built shell at ' + shell_binary_path
87 print ' - using the default origin of ' + local_origin_path
88 else:
89 if launcher_args.android:
90 adb_path = 'adb'
91 shell_binary_path = None
92 local_origin_path = '.'
93 if launcher_args.verbose:
94 print 'Running outside a Mojo checkout:'
95 print ' - using the shell already installed on the device'
96 print ' - using the current working directory as default origin'
97 else:
98 print 'Running outside a Mojo checkout is not supported on Linux yet.'
99 return 1
100
101 if launcher_args.android:
102 verbose_pipe = sys.stdout if launcher_args.verbose else None
103
104 shell = AndroidShell(adb_path, launcher_args.target_device,
105 logcat_tags=launcher_args.logcat_tags,
106 verbose_pipe=verbose_pipe)
107 device_status, error = shell.CheckDevice()
108 if not device_status:
109 print 'Device check failed: ' + error
110 return 1
111 if shell_binary_path:
112 shell.InstallApk(shell_binary_path)
113
114 args = shell_arguments.RewriteMapOriginParameters(shell, args)
115 if not launcher_args.origin:
116 args.extend(shell_arguments.ConfigureLocalOrigin(shell,
117 local_origin_path))
118 else:
119 shell = LinuxShell(shell_binary_path)
120 if launcher_args.use_osmesa:
121 args.append('--args-for=mojo:native_viewport_service --use-osmesa')
122
123 if launcher_args.origin:
124 args.append('--origin=' + launcher_args.origin)
125 args = shell_arguments.AppendToArgument(args, '--url-mappings=',
126 'mojo:window_manager=%s' %
127 launcher_args.window_manager)
128 if not launcher_args.no_debugger:
129 args.extend(shell_arguments.ConfigureDebugger(shell))
130
131 if launcher_args.sky:
132 if not mojo_paths:
133 print 'Running with --sky is not supported outside of the Mojo checkout.'
134 # See https://github.com/domokit/devtools/issues/27.
135 return 1
136 args.extend(shell_arguments.ConfigureSky(shell, mojo_paths['root'],
137 mojo_paths['sky_packages'],
138 launcher_args.sky))
139
140 if launcher_args.verbose:
141 print "Shell arguments: " + str(args)
142
143 shell.Run(args)
144 return 0
145
146
147 if __name__ == "__main__":
148 sys.exit(main())
OLDNEW
« no previous file with comments | « mojo/devtools/common/mojo_run ('k') | mojo/tools/mojo_shell.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698