]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | #!/usr/bin/env bash |
2 | ||
3 | BASE_DIR=$(readlink -f $(dirname $0)) | |
4 | [[ -z "$TEST_DIR" ]] && TEST_DIR="$(cd $BASE_DIR/../../../../ && pwd)" | |
5 | ||
6 | function usage() | |
7 | { | |
8 | [[ ! -z $2 ]] && ( echo "$2"; echo ""; ) | |
9 | echo "Shortcut script for connecting to or executing command on selected VM" | |
10 | echo "Usage: $(basename $1) [OPTIONS] VM_NUMBER" | |
11 | echo | |
12 | echo "-h, --help print help and exit" | |
13 | echo " --work-dir=WORK_DIR Where to find build file. Must exist. [default: $TEST_DIR]" | |
14 | echo "-w Don't wait for vm to boot" | |
15 | echo "-x set -x for script debug" | |
16 | exit 0 | |
17 | } | |
18 | ||
19 | boot_wait=true | |
20 | while getopts 'xwh-:' optchar; do | |
21 | case "$optchar" in | |
22 | -) | |
23 | case "$OPTARG" in | |
24 | help) usage $0 ;; | |
25 | work-dir=*) TEST_DIR="${OPTARG#*=}" ;; | |
26 | *) usage $0 "Invalid argument '$OPTARG'" ;; | |
27 | esac ;; | |
28 | h) usage $0 ;; | |
29 | w) boot_wait=false ;; | |
30 | x) set -x ;; | |
31 | *) usage $0 "Invalid argument '$OPTARG'" ;; | |
32 | esac | |
33 | done | |
34 | ||
35 | . $BASE_DIR/common.sh | |
36 | ||
37 | shift $((OPTIND-1)) | |
38 | vm_num="$1" | |
39 | shift | |
40 | ||
41 | ||
42 | if ! vm_num_is_valid $vm_num; then | |
43 | usage $0 "Invalid VM num $vm_num" | |
44 | exit 1 | |
45 | fi | |
46 | ||
47 | if $boot_wait; then | |
48 | while ! vm_os_booted $vm_num; do | |
49 | if ! vm_is_running $vm_num; then | |
50 | echo "ERROR: VM$vm_num is not running" | |
51 | exit 1 | |
52 | fi | |
53 | echo "INFO: waiting for VM$vm_num to boot" | |
54 | sleep 1 | |
55 | done | |
56 | fi | |
57 | ||
58 | vm_ssh $vm_num "$@" |