Enforce minimum visibility only for normal and panel windows
[chromium-blink-merge.git] / tools / android / adb_remote_setup.sh
blobbf209cdb39c6384618a4dfba5ead704cc3735b54
1 #!/bin/bash
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.
6 # URL from which the latest version of this script can be downloaded.
7 script_url="http://src.chromium.org/svn/trunk/src/tools/android/adb_remote_setup.sh"
9 # Replaces this file with the latest version of the script and runs it.
10 update-self() {
11 local script="${BASH_SOURCE[0]}"
12 local new_script="${script}.new"
13 local updater_script="${script}.updater"
14 curl -sSf -o "$new_script" "$script_url" || return
15 chmod +x "$new_script" || return
17 # Replace this file with the newly downloaded script.
18 cat > "$updater_script" << EOF
19 #!/bin/bash
20 if mv "$new_script" "$script"; then
21 rm -- "$updater_script"
22 else
23 echo "Note: script update failed."
25 ADB_REMOTE_SETUP_NO_UPDATE=1 exec /bin/bash "$script" $@
26 EOF
27 exec /bin/bash "$updater_script" "$@"
30 if [[ "$ADB_REMOTE_SETUP_NO_UPDATE" -ne 1 ]]; then
31 update-self "$@" || echo 'Note: script update failed'
34 if [[ $# -ne 1 && $# -ne 2 ]]; then
35 cat <<'EOF'
36 Usage: adb_remote_setup.sh REMOTE_HOST [REMOTE_ADB]
38 Configures adb on a remote machine to communicate with a device attached to the
39 local machine. This is useful for installing APKs, running tests, etc while
40 working remotely.
42 Arguments:
43 REMOTE_HOST hostname of remote machine
44 REMOTE_ADB path to adb on the remote machine (you can omit this if adb is in
45 the remote host's path)
46 EOF
47 exit 1
50 remote_host="$1"
51 remote_adb="${2:-adb}"
53 # Ensure adb is in the local machine's path.
54 if ! which adb >/dev/null; then
55 echo "error: adb must be in your local machine's path."
56 exit 1
59 if which kinit >/dev/null; then
60 # Allow ssh to succeed without typing your password multiple times.
61 kinit -R || kinit
64 # Kill the adb server on the remote host.
65 ssh "$remote_host" "$remote_adb kill-server"
67 # Start the adb server locally.
68 adb start-server
70 # Forward various ports from the remote host to the local host:
71 # 5037: adb
72 # 8001: http server
73 # 9031: sync server
74 # 10000: net unittests
75 # 10201: net unittests
76 ssh -C \
77 -R 5037:localhost:5037 \
78 -L 8001:localhost:8001 \
79 -L 9031:localhost:9031 \
80 -R 10000:localhost:10000 \
81 -R 10201:localhost:10201 \
82 "$remote_host"