Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas De Schampheleire <patrickdepinguin@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCHv4 6/8] support/download/scp: implement source-check
Date: Fri, 15 Feb 2019 22:08:01 +0100	[thread overview]
Message-ID: <20190215210803.8969-6-patrickdepinguin@gmail.com> (raw)
In-Reply-To: <20190215210803.8969-1-patrickdepinguin@gmail.com>

From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>

We use 'test -f' rather than 'ls' because 'test' is a mandatory POSIX
utility while 'ls' is not.

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
---
 support/download/scp | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

v4: (feedback Yann E. Morin)
- use true/false as values to 'checkonly'
- replace incorrect 'exit $?' by explicit 'exit 0'
- use 'test -f' instead of 'ls' which is more certain to be present (POSIX
  mandatory utility)

v3: no changes

diff --git a/support/download/scp b/support/download/scp
index 80cf495c4e..52ccf06d6e 100755
--- a/support/download/scp
+++ b/support/download/scp
@@ -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}'"
-- 
2.19.2

  parent reply	other threads:[~2019-02-15 21:08 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-15 21:07 [Buildroot] [PATCHv4 1/8] support/download: reintroduce 'source-check' target Thomas De Schampheleire
2019-02-15 21:07 ` [Buildroot] [PATCHv4 2/8] support/download/hg: implement source-check Thomas De Schampheleire
2019-02-15 21:07 ` [Buildroot] [PATCHv4 3/8] support/download/wget: " Thomas De Schampheleire
2019-02-15 21:07 ` [Buildroot] [PATCHv4 4/8] support/download/file: " Thomas De Schampheleire
2019-02-15 21:08 ` [Buildroot] [PATCHv4 5/8] Config.in: reintroduce BR2_SSH Thomas De Schampheleire
2019-02-16 12:34   ` Yann E. MORIN
2019-02-16 21:23     ` Thomas De Schampheleire
2019-02-16 22:29       ` Yann E. MORIN
2019-02-15 21:08 ` Thomas De Schampheleire [this message]
2019-02-15 21:08 ` [Buildroot] [PATCHv4 7/8] support/download/svn: implement source-check Thomas De Schampheleire
2019-02-15 21:08 ` [Buildroot] [PATCHv4 8/8] support/download/{bzr, cvs, git}: highlight unimplemented source-check Thomas De Schampheleire

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190215210803.8969-6-patrickdepinguin@gmail.com \
    --to=patrickdepinguin@gmail.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox