function help () {
cat <<EOF
-xremote.sh [-h <remote_host>] [-i <remote_dir>] <script> [script arguments]
+xremote.sh [--help] [-h <remote_host>] [-i <remote_dir>] <script> [script arguments]
This script takes a script as argument and executes it remotely in a
temporary directory on a ssh-accessible server.
-h)
shift
ARG_HOST="$1"
+ [[ ${ARG_HOST} ]] || (echo "xremote: Hostname missing." && exit 1)
echo "xremote: remote forced to ${ARG_HOST}"
;;
-i)
shift
ARG_DIR="$1"
+ [[ ${ARG_DIR} ]] || (echo "xremote: Directory missing." && exit 1)
echo "xremote: remote dir set to ${ARG_DIR}"
;;
+ --help)
+ help
+ exit 0
+ ;;
+
*)
- echo "Unknown option $1"
+ echo "xremote: Unknown option $1"
exit 1
;;
esac
######################################################################
-[[ -a "$1" ]] || (help && exit 1)
+[[ "$1" ]] || (echo "xremote: Script name missing" && exit 1)
+
+[[ -a "$1" ]] || (help && echo >&2 "xremote: Cannot find script \`$1'" && exit 1)
+
+cd "$(dirname "$1")"
main="$(basename "$1")"
main_config="${main}.xremote"
-if [[ ! -f "${main}.xremote" ]]
+if [[ -f "${main_config}" ]]
then
+ echo "xremote: found ${main_config}"
+else
main_config="${main}"
fi
-cd "$(dirname "$1")"
-
shift
trap cleanup_remote_tmp EXIT
######################################################################
# I find this slightly ugly ...
+
for s in "$@"
do
quoted_args="${quoted_args} \"${s}\""
;;
esac
fi
+
done < "${main_config}"
set +f