1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from pylib
import constants
9 BIN_DIR
= '%s/bin' % constants
.TEST_EXECUTABLE_DIR
10 _FRAMEWORK_DIR
= '%s/framework' % constants
.TEST_EXECUTABLE_DIR
13 'unzip': 'org.chromium.android.commands.unzip.Unzip',
16 _SHELL_COMMAND_FORMAT
= (
19 export CLASSPATH=$base/framework/chromium_commands.jar
20 exec app_process $base/bin %s $@
24 def Installed(device
):
25 return (all(device
.FileExists('%s/%s' % (BIN_DIR
, c
)) for c
in _COMMANDS
)
26 and device
.FileExists('%s/chromium_commands.jar' % _FRAMEWORK_DIR
))
28 def InstallCommands(device
):
29 if device
.IsUserBuild():
30 raise Exception('chromium_commands currently requires a userdebug build.')
32 chromium_commands_jar_path
= os
.path
.join(
33 constants
.GetOutDirectory(), constants
.SDK_BUILD_JAVALIB_DIR
,
34 'chromium_commands.dex.jar')
35 if not os
.path
.exists(chromium_commands_jar_path
):
36 raise Exception('%s not found. Please build chromium_commands.'
37 % chromium_commands_jar_path
)
39 device
.RunShellCommand(['mkdir', BIN_DIR
, _FRAMEWORK_DIR
])
40 for command
, main_class
in _COMMANDS
.iteritems():
41 shell_command
= _SHELL_COMMAND_FORMAT
% (
42 constants
.TEST_EXECUTABLE_DIR
, main_class
)
43 shell_file
= '%s/%s' % (BIN_DIR
, command
)
44 device
.WriteFile(shell_file
, shell_command
)
45 device
.RunShellCommand(
46 ['chmod', '755', shell_file
], check_return
=True)
49 chromium_commands_jar_path
,
50 '%s/chromium_commands.jar' % _FRAMEWORK_DIR
)