summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2017-05-17 09:12:38 +0000
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2017-05-17 12:47:39 +0000
commitaadad411d21b41a011f8f981d637e74a03bc81ed (patch)
tree0eb5376e21e6065dd56577e1afb2bf85df14ef5b
parent7af13ca36936fa04ffbd813863cddb66367b3fb0 (diff)
jenkins-helpers.sh: Add remote_exec helper
Change-Id: I709feab6aa37e6b9b1302fe31f39be063d27115d
-rw-r--r--jenkins-helpers.sh17
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[@]}"
+}