From ff559846fdc11f718ef6ed49c25117fab90b8019 Mon Sep 17 00:00:00 2001 From: Romain Perier Date: Tue, 23 Aug 2016 14:19:44 +0200 Subject: [PATCH] support/download: Add support to pass options directly to downloaders This adds support to pass options to the underlying command that is used by downloader. Useful for retrieving data with server-side checking for user login or passwords, use a proxy or use specific options for cloning a repository via git and hg. Signed-off-by: Romain Perier Acked-by: "Yann E. MORIN" Signed-off-by: Thomas Petazzoni --- support/download/bzr | 4 +++- support/download/cp | 4 +++- support/download/cvs | 4 +++- support/download/git | 6 ++++-- support/download/hg | 4 +++- support/download/scp | 4 +++- support/download/svn | 4 +++- support/download/wget | 4 +++- 8 files changed, 25 insertions(+), 9 deletions(-) diff --git a/support/download/bzr b/support/download/bzr index e18b01f39c..75b7b415c1 100755 --- a/support/download/bzr +++ b/support/download/bzr @@ -26,6 +26,8 @@ repo="${2}" rev="${3}" basename="${4}" +shift 4 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _bzr() { @@ -49,5 +51,5 @@ if [ ${bzr_version} -ge ${bzr_min_version} ]; then fi _bzr export ${verbose} --root="'${basename}/'" --format=tgz \ - ${timestamp_opt} - "'${repo}'" -r "'${rev}'" \ + ${timestamp_opt} - "${@}" "'${repo}'" -r "'${rev}'" \ >"${output}" diff --git a/support/download/cp b/support/download/cp index 09ce3d1100..0ee1f3ba82 100755 --- a/support/download/cp +++ b/support/download/cp @@ -28,10 +28,12 @@ shift $((OPTIND-1)) output="${1}" source="${2}" +shift 2 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _localfiles() { eval ${LOCALFILES} "${@}" } -_localfiles ${verbose} "'${source}'" "'${output}'" +_localfiles ${verbose} "${@}""'${source}'" "'${output}'" diff --git a/support/download/cvs b/support/download/cvs index 7980389a4e..50050ab1c9 100755 --- a/support/download/cvs +++ b/support/download/cvs @@ -26,6 +26,8 @@ rev="${3}" rawname="${4}" basename="${5}" +shift 5 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _cvs() { @@ -48,6 +50,6 @@ fi export TZ=UTC _cvs ${verbose} -z3 -d"'${repo}'" \ - co -d "'${basename}'" ${select} "'${rev}'" -P "'${rawname}'" + co "${@}" -d "'${basename}'" ${select} "'${rev}'" -P "'${rawname}'" tar czf "${output}" "${basename}" diff --git a/support/download/git b/support/download/git index 416cd1baf2..281db61a9a 100755 --- a/support/download/git +++ b/support/download/git @@ -30,6 +30,8 @@ repo="${2}" cset="${3}" basename="${4}" +shift 4 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _git() { @@ -46,7 +48,7 @@ _git() { git_done=0 if [ -n "$(_git ls-remote "'${repo}'" "'${cset}'" 2>&1)" ]; then printf "Doing shallow clone\n" - if _git clone ${verbose} --depth 1 -b "'${cset}'" "'${repo}'" "'${basename}'"; then + if _git clone ${verbose} "${@}" --depth 1 -b "'${cset}'" "'${repo}'" "'${basename}'"; then git_done=1 else printf "Shallow clone failed, falling back to doing a full clone\n" @@ -54,7 +56,7 @@ if [ -n "$(_git ls-remote "'${repo}'" "'${cset}'" 2>&1)" ]; then fi if [ ${git_done} -eq 0 ]; then printf "Doing full clone\n" - _git clone ${verbose} "'${repo}'" "'${basename}'" + _git clone ${verbose} "${@}" "'${repo}'" "'${basename}'" fi pushd "${basename}" >/dev/null diff --git a/support/download/hg b/support/download/hg index 25cb4e9d35..3af01690b3 100755 --- a/support/download/hg +++ b/support/download/hg @@ -25,13 +25,15 @@ repo="${2}" cset="${3}" basename="${4}" +shift 4 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _hg() { eval ${HG} "${@}" } -_hg clone ${verbose} --noupdate "'${repo}'" "'${basename}'" +_hg clone ${verbose} "${@}" --noupdate "'${repo}'" "'${basename}'" _hg archive ${verbose} --repository "'${basename}'" --type tgz \ --prefix "'${basename}'" --rev "'${cset}'" \ diff --git a/support/download/scp b/support/download/scp index 95cf502be2..825fd41c64 100755 --- a/support/download/scp +++ b/support/download/scp @@ -23,10 +23,12 @@ shift $((OPTIND-1)) output="${1}" url="${2}" +shift 2 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _scp() { eval ${SCP} "${@}" } -_scp ${verbose} "'${url}'" "'${output}'" +_scp ${verbose} "${@}" "'${url}'" "'${output}'" diff --git a/support/download/svn b/support/download/svn index 4dcdd06239..77abf3d02d 100755 --- a/support/download/svn +++ b/support/download/svn @@ -25,12 +25,14 @@ repo="${2}" rev="${3}" basename="${4}" +shift 4 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _svn() { eval ${SVN} "${@}" } -_svn export ${verbose} "'${repo}@${rev}'" "'${basename}'" +_svn export ${verbose} "${@}" "'${repo}@${rev}'" "'${basename}'" tar czf "${output}" "${basename}" diff --git a/support/download/wget b/support/download/wget index 0fc7ffa94e..768de904c3 100755 --- a/support/download/wget +++ b/support/download/wget @@ -23,10 +23,12 @@ shift $((OPTIND-1)) output="${1}" url="${2}" +shift 2 # Get rid of our options + # Caller needs to single-quote its arguments to prevent them from # being expanded a second time (in case there are spaces in them) _wget() { eval ${WGET} "${@}" } -_wget ${verbose} -O "'${output}'" "'${url}'" +_wget ${verbose} "${@}" -O "'${output}'" "'${url}'" -- 2.30.2