diff options
author | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2017-05-17 09:12:38 +0000 |
---|---|---|
committer | Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | 2017-05-17 12:47:39 +0000 |
commit | aadad411d21b41a011f8f981d637e74a03bc81ed (patch) | |
tree | 0eb5376e21e6065dd56577e1afb2bf85df14ef5b | |
parent | 7af13ca36936fa04ffbd813863cddb66367b3fb0 (diff) |
jenkins-helpers.sh: Add remote_exec helper
Change-Id: I709feab6aa37e6b9b1302fe31f39be063d27115d
-rw-r--r-- | jenkins-helpers.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/jenkins-helpers.sh b/jenkins-helpers.sh index a012a631..09a9c78c 100644 --- a/jenkins-helpers.sh +++ b/jenkins-helpers.sh @@ -106,3 +106,20 @@ print_tester_label_for_target () esac ) } + +# Run command on remote machine in given directory via ssh on a given port +# "$1" -- <host>[:<port>[:<dir>]] +# "$2, $3, etc" -- command and its arguments +# E.g., remote_exec dev-01.tcwglab::/tmp find -name "my file.bak" +remote_exec () +{ + local host="$(echo $1 | cut -d: -f 1)" + local port="$(echo $1 | cut -s -d: -f 2)" + local dir="$(echo $1 | cut -s -d: -f 3)" + shift + local -a cmd + cmd=() + # Add quotes to every parameter + for i in "$@"; do cmd+=($(printf '%q' "$i")); done + ssh ${port:+-p$port} -A $host "${dir:+cd "$(printf '%q' "$dir")" &&} exec ${cmd[@]}" +} |