OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 from skypy.skyserver import SkyServer | 6 from skypy.skyserver import SkyServer |
7 import argparse | 7 import argparse |
8 import json | 8 import json |
9 import logging | 9 import logging |
10 import os | 10 import os |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 def _create_paths_for_build_dir(self, build_dir): | 136 def _create_paths_for_build_dir(self, build_dir): |
137 # skypy.paths.Paths takes a root-relative build_dir argument. :( | 137 # skypy.paths.Paths takes a root-relative build_dir argument. :( |
138 abs_build_dir = os.path.abspath(build_dir) | 138 abs_build_dir = os.path.abspath(build_dir) |
139 root_relative_build_dir = os.path.relpath(abs_build_dir, SRC_ROOT) | 139 root_relative_build_dir = os.path.relpath(abs_build_dir, SRC_ROOT) |
140 return skypy.paths.Paths(root_relative_build_dir) | 140 return skypy.paths.Paths(root_relative_build_dir) |
141 | 141 |
142 def start_command(self, args): | 142 def start_command(self, args): |
143 # FIXME: Lame that we use self for a command-specific variable. | 143 # FIXME: Lame that we use self for a command-specific variable. |
144 self.paths = self._create_paths_for_build_dir(args.build_dir) | 144 self.paths = self._create_paths_for_build_dir(args.build_dir) |
145 self.stop_command(None) # Quit any existing process. | 145 self.stop_command(None) # Quit any existing process. |
146 self.pids = {} # Clear out our pid file. | |
147 | 146 |
148 if not os.path.exists(self.paths.mojo_shell_path): | 147 if not os.path.exists(self.paths.mojo_shell_path): |
149 print "mojo_shell not found in build_dir '%s'" % args.build_dir | 148 print "mojo_shell not found in build_dir '%s'" % args.build_dir |
150 print "Are you sure you sure that's a valid build_dir location?" | 149 print "Are you sure you sure that's a valid build_dir location?" |
151 print "See skydb start --help for more info" | 150 print "See skydb start --help for more info" |
152 sys.exit(2) | 151 sys.exit(2) |
153 | 152 |
154 # FIXME: This is probably not the right way to compute is_android | 153 # FIXME: This is probably not the right way to compute is_android |
155 # from the build directory? | 154 # from the build directory? |
156 gn_args = gn_args_from_build_dir(args.build_dir) | 155 gn_args = gn_args_from_build_dir(args.build_dir) |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 # adb forward --remove takes the *host* port, not the remote port. | 242 # adb forward --remove takes the *host* port, not the remote port. |
244 port_string = 'tcp:%s' % self.pids['sky_command_port'] | 243 port_string = 'tcp:%s' % self.pids['sky_command_port'] |
245 subprocess.call(['adb', 'forward', '--remove', port_string]) | 244 subprocess.call(['adb', 'forward', '--remove', port_string]) |
246 | 245 |
247 subprocess.call([ | 246 subprocess.call([ |
248 'adb', 'shell', 'am', 'force-stop', ANDROID_PACKAGE]) | 247 'adb', 'shell', 'am', 'force-stop', ANDROID_PACKAGE]) |
249 | 248 |
250 if 'remote_gdbserver_port' in self.pids: | 249 if 'remote_gdbserver_port' in self.pids: |
251 port_string = 'tcp:%s' % self.pids['remote_gdbserver_port'] | 250 port_string = 'tcp:%s' % self.pids['remote_gdbserver_port'] |
252 subprocess.call(['adb', 'forward', '--remove', port_string]) | 251 subprocess.call(['adb', 'forward', '--remove', port_string]) |
| 252 self.pids = {} # Clear out our pid file. |
253 | 253 |
254 def load_command(self, args): | 254 def load_command(self, args): |
255 if not urlparse.urlparse(args.url_or_path).scheme: | 255 if not urlparse.urlparse(args.url_or_path).scheme: |
256 # The load happens on the remote device, use the remote port. | 256 # The load happens on the remote device, use the remote port. |
257 remote_sky_server_port = self.pids.get('remote_sky_server_port', | 257 remote_sky_server_port = self.pids.get('remote_sky_server_port', |
258 self.pids['sky_server_port']) | 258 self.pids['sky_server_port']) |
259 url = SkyServer.url_for_path(remote_sky_server_port, | 259 url = SkyServer.url_for_path(remote_sky_server_port, |
260 self.pids['sky_server_root'], args.url_or_path) | 260 self.pids['sky_server_root'], args.url_or_path) |
261 else: | 261 else: |
262 url = args.url_or_path | 262 url = args.url_or_path |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 load_parser.set_defaults(func=self.load_command) | 394 load_parser.set_defaults(func=self.load_command) |
395 | 395 |
396 args = parser.parse_args() | 396 args = parser.parse_args() |
397 args.func(args) | 397 args.func(args) |
398 | 398 |
399 self._write_pid_file(PID_FILE_PATH, self.pids) | 399 self._write_pid_file(PID_FILE_PATH, self.pids) |
400 | 400 |
401 | 401 |
402 if __name__ == '__main__': | 402 if __name__ == '__main__': |
403 SkyDebugger().main() | 403 SkyDebugger().main() |
OLD | NEW |