support/download: Add support to pass options directly to downloaders
authorRomain Perier <romain.perier@free-electrons.com>
Tue, 23 Aug 2016 12:19:44 +0000 (14:19 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 23 Aug 2016 12:59:01 +0000 (14:59 +0200)
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 <romain.perier@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
support/download/bzr
support/download/cp
support/download/cvs
support/download/git
support/download/hg
support/download/scp
support/download/svn
support/download/wget

index e18b01f39c9c1da54054233b64b84717aef453f0..75b7b415c1fda0f150e92235aef3a0ef7e9f089b 100755 (executable)
@@ -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}"
index 09ce3d1100f07195765d0e77e1587d57b7c905e5..0ee1f3ba8234ab2ca1abf653913e6fb4b48e0336 100755 (executable)
@@ -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}'"
index 7980389a4eeaf2024e6d746a4277e3ecb93ac314..50050ab1c9c5e411dc004e3eeedaa31557a9c4a8 100755 (executable)
@@ -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}"
index 416cd1baf2a6082791532fc4d9887563cf9faa1c..281db61a9a1c3e7c1fafdec1a95f7c5ed664070e 100755 (executable)
@@ -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
index 25cb4e9d3510add52f917b79636db758fb4cd8fe..3af01690b309c564f2b52aee0d4896e82f7ba4e5 100755 (executable)
@@ -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}'" \
index 95cf502be2f4ef0d70d9a6f35cae2b5ac0e7e9fc..825fd41c6479e845a3ef4f6e11804711a3765713 100755 (executable)
@@ -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}'"
index 4dcdd06239d308c0332b5e610216042374dae551..77abf3d02dad6c54313f4583bcb0d4fab0bfe0ce 100755 (executable)
@@ -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}"
index 0fc7ffa94e5a082ba9bd90f4a84039c9361288ba..768de904c3a5a19ddf3f9401e430d639e7ecdaf9 100755 (executable)
@@ -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}'"