[Buildroot] [PATCHv2 7/8] support/download/scp: implement source-check
Thomas De Schampheleire
patrickdepinguin at gmail.com
Mon Feb 4 18:05:52 UTC 2019
From: Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire at nokia.com>
---
support/download/scp | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/support/download/scp b/support/download/scp
index 80cf495c4e..d81952956c 100755
--- a/support/download/scp
+++ b/support/download/scp
@@ -7,17 +7,20 @@ 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=
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) verbose=-q;;
+ C) checkonly=1;;
o) output="${OPTARG}";;
f) filename="${OPTARG}";;
u) uri="${OPTARG}";;
@@ -33,8 +36,19 @@ shift $((OPTIND-1)) # Get rid of our options
_scp() {
eval ${SCP} "${@}"
}
+_ssh() {
+ eval ${SSH} "${@}"
+}
# Remove any scheme prefix
uri="${uri##scp://}"
+if [ -n "${checkonly}" ]; then
+ # uri now looks like: foo.example.org:some/directory
+ domain="${uri%%:*}"
+ path="${uri#*:}/${filename}"
+ _ssh ${verbose} "${@}" "'${domain}'" ls "'${path}'" > /dev/null
+ exit ${?}
+fi
+
_scp ${verbose} "${@}" "'${uri}/${filename}'" "'${output}'"
--
2.19.2
More information about the buildroot
mailing list