@@ -7,17 +7,21 @@ set -e
#
# Options:
# -q Be quiet.
+# -C Only check that the file exists remotely.
# -o FILE Copy to local file FILE.
# -f FILE Copy from remote file FILE.
# -u URI Download file at URI.
#
# Environment:
# SCP : the scp command to call
+# SSH : the ssh command to use for checkonly
verbose=
+checkonly=false
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q;;
+ C) checkonly=true;;
o) output="${OPTARG}";;
f) filename="${OPTARG}";;
u) uri="${OPTARG}";;
@@ -33,8 +37,19 @@ shift $((OPTIND-1)) # Get rid of our options
_scp() {
eval ${SCP} "${@}"
}
+_ssh() {
+ eval ${SSH} "${@}"
+}
# Remove any scheme prefix
uri="${uri##scp://}"
+if ${checkonly}; then
+ # uri now looks like: foo.example.org:some/directory
+ domain="${uri%%:*}"
+ path="${uri#*:}/${filename}"
+ _ssh ${verbose} "${@}" "'${domain}'" test -f "'${path}'" > /dev/null
+ exit 0
+fi
+
_scp ${verbose} "${@}" "'${uri}/${filename}'" "'${output}'"