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

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

Issue 1268713005: Unify method name casing in devtools. (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
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 import subprocess 5 import subprocess
6 import threading 6 import threading
7 7
8 from devtoolslib import http_server 8 from devtoolslib import http_server
9 from devtoolslib.shell import Shell 9 from devtoolslib.shell import Shell
10 from devtoolslib.utils import overrides 10 from devtoolslib.utils import overrides
11 11
12 12
13 class LinuxShell(Shell): 13 class LinuxShell(Shell):
14 """Wrapper around Mojo shell running on Linux. 14 """Wrapper around Mojo shell running on Linux.
15 15
16 Args: 16 Args:
17 executable_path: path to the shell binary 17 executable_path: path to the shell binary
18 command_prefix: optional list of arguments to prepend to the shell command, 18 command_prefix: optional list of arguments to prepend to the shell command,
19 allowing e.g. to run the shell under debugger. 19 allowing e.g. to run the shell under debugger.
20 """ 20 """
21 21
22 def __init__(self, executable_path, command_prefix=None): 22 def __init__(self, executable_path, command_prefix=None):
23 self.executable_path = executable_path 23 self.executable_path = executable_path
24 self.command_prefix = command_prefix if command_prefix else [] 24 self.command_prefix = command_prefix if command_prefix else []
25 25
26 @overrides(Shell) 26 @overrides(Shell)
27 def ServeLocalDirectory(self, local_dir_path, port=0): 27 def serve_local_directory(self, local_dir_path, port=0):
28 mappings = [('', local_dir_path)] 28 mappings = [('', local_dir_path)]
29 return 'http://%s:%d/' % http_server.start_http_server(mappings, port) 29 return 'http://%s:%d/' % http_server.start_http_server(mappings, port)
30 30
31 @overrides(Shell) 31 @overrides(Shell)
32 def ServeLocalDirectories(self, mappings, port=0): 32 def serve_local_directories(self, mappings, port=0):
33 return 'http://%s:%d/' % http_server.start_http_server(mappings, port) 33 return 'http://%s:%d/' % http_server.start_http_server(mappings, port)
34 34
35 @overrides(Shell) 35 @overrides(Shell)
36 def ForwardHostPortToShell(self, host_port): 36 def forward_host_port_to_shell(self, host_port):
37 pass 37 pass
38 38
39 @overrides(Shell) 39 @overrides(Shell)
40 def Run(self, arguments): 40 def run(self, arguments):
41 command = self.command_prefix + [self.executable_path] + arguments 41 command = self.command_prefix + [self.executable_path] + arguments
42 return subprocess.call(command, stderr=subprocess.STDOUT) 42 return subprocess.call(command, stderr=subprocess.STDOUT)
43 43
44 @overrides(Shell) 44 @overrides(Shell)
45 def RunAndGetOutput(self, arguments, timeout=None): 45 def run_and_get_output(self, arguments, timeout=None):
46 command = self.command_prefix + [self.executable_path] + arguments 46 command = self.command_prefix + [self.executable_path] + arguments
47 p = subprocess.Popen(command, stdout=subprocess.PIPE, 47 p = subprocess.Popen(command, stdout=subprocess.PIPE,
48 stderr=subprocess.STDOUT) 48 stderr=subprocess.STDOUT)
49 49
50 class Results: 50 class Results:
51 """Workaround for Python scoping rules that prevent assigning to variables 51 """Workaround for Python scoping rules that prevent assigning to variables
52 from the outer scope. 52 from the outer scope.
53 """ 53 """
54 output = None 54 output = None
55 55
56 def do_run(): 56 def do_run():
57 (Results.output, _) = p.communicate() 57 (Results.output, _) = p.communicate()
58 58
59 run_thread = threading.Thread(target=do_run) 59 run_thread = threading.Thread(target=do_run)
60 run_thread.start() 60 run_thread.start()
61 run_thread.join(timeout) 61 run_thread.join(timeout)
62 62
63 if run_thread.is_alive(): 63 if run_thread.is_alive():
64 p.terminate() 64 p.terminate()
65 return p.returncode, Results.output, True 65 return p.returncode, Results.output, True
66 return p.returncode, Results.output, False 66 return p.returncode, Results.output, False
OLDNEW
« no previous file with comments | « mojo/devtools/common/devtoolslib/http_server.py ('k') | mojo/devtools/common/devtoolslib/shell.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698