#########################################################################
set -e
-set -o pipefail
+
+# set -o pipefail
######################################################################
function help () {
cat <<EOF
-xremote.sh <script>
+xremote.sh <script> [arguments]
This script takes a script as argument and executes it remotely in a
temporary directory on a ssh-accessible server.
@XREMOTE_PRE: ln -s /home/fleuret/data/pytorch ./data
If no argument is provided to @XREMOTE_HOST, the environment
- variable $XREMOTE_HOST is used instead
+ variable \$XREMOTE_HOST is used instead
Contact <francois@fleuret.org> for comments.
cd "$(dirname "$1")"
+shift
+
trap cleanup_remote_tmp EXIT
######################################################################
PRE)
check_remote_is_defined
+ echo "xremote: ${value}"
ssh < /dev/null "${REMOTE_HOST}" "cd \"${REMOTE_DIR}\" && ${value}"
;;
SEND)
check_remote_is_defined
echo "xremote: -- sending files --------------------------------------------"
- tar c ${value} | ssh "${REMOTE_HOST}" "cd \"${REMOTE_DIR}\" && tar mxv"
+ tar ch ${value} | ssh "${REMOTE_HOST}" "cd \"${REMOTE_DIR}\" && tar mxv"
;;
HOST)
REMOTE_COMMAND="./${main}"
fi
-ssh </dev/null "${REMOTE_HOST}" "cd \"${REMOTE_DIR}\" && ${REMOTE_COMMAND}"
+######################################################################
+
+# I find this slightly ugly ...
+for s in "$@"
+do
+ quoted_args="${quoted_args} \"${s}\""
+done
+
+ssh </dev/null "${REMOTE_HOST}" "cd \"${REMOTE_DIR}\" && ${REMOTE_COMMAND} ${quoted_args}"
######################################################################