From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yann E. MORIN Date: Fri, 2 Jan 2015 16:41:03 +0100 Subject: [Buildroot] [PATCH 2/4 v9] support/download: support -q in all download backends In-Reply-To: References: Message-ID: <20150102154103.GC4392@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Fabio, All, On 2015-01-02 16:01 +0100, Fabio Porcedda spake thusly: > On Thu, Jan 1, 2015 at 9:03 PM, Yann E. MORIN wrote: > > Add an option flag to all backends, as well as the check-hash script, so > > as to silence download helpers when the user wants a silent build. > > > > Additionaly, make the default verbose. > > > > Inspired by Fabio's patch on git/svn. > > > > Signed-off-by: "Yann E. MORIN" > > Cc: Fabio Porcedda > > > > --- > > Note: cvs, cp and scp are not tested, because we do not have in-tree > > packages using those transport methods. > > --- > > support/download/bzr | 23 ++++++++++++++++------- > > support/download/check-hash | 8 ++++++++ > > support/download/cp | 20 +++++++++++++++----- > > support/download/cvs | 23 +++++++++++++++-------- > > support/download/git | 24 ++++++++++++++++-------- > > support/download/hg | 24 ++++++++++++++++-------- > > support/download/scp | 20 +++++++++++++++----- > > support/download/svn | 22 +++++++++++++++------- > > support/download/wget | 20 +++++++++++++++----- > > 9 files changed, 131 insertions(+), 53 deletions(-) > > > > diff --git a/support/download/bzr b/support/download/bzr > > index c157ca8..96b0844 100755 > > --- a/support/download/bzr > > +++ b/support/download/bzr > > @@ -4,17 +4,26 @@ > > set -e > > > > # Download helper for bzr, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: bzr repo > > -# $3: bzr revision > > -# $4: basename > > -# And this environment: > > +# > > +# Call it as: > > +# .../bzr [-q] OUT_FILE REPO_URL REV BASENAME > > +# > > +# Environemnt: > > # BZR : the bzr command to call > > > > + > > +verbose=-v > > +while getopts :q OPT; do > > The colon should be removed: > > :q -> q > > because with the colon if there is a wrong option it exit without > giving any error message, but without the colon it gives the following > error: > ./support/download/bzr: illegal option -- t > This is valid for all the backends. Yes, that's expected behaviour, and the exit is handled... > > + case "${OPT}" in > > + q) verbose=-q;; > > + \?) exit 1;; ... there. The backends are *not* meant to be called directly, so them failing silently when improper option is pased is perfectly acceptable IMHO. But we could add a printf as well if you really want. ;-) I'll do that before respinning... Regards, Yann E. MORIN. > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > repo="${2}" > > rev="${3}" > > basename="${4}" > > > > -${BZR} export --root="${basename}/" --format=tgz "${output}" "${repo}" -r "${rev}" > > +${BZR} export ${verbose} --root="${basename}/" --format=tgz "${output}" "${repo}" -r "${rev}" > > diff --git a/support/download/check-hash b/support/download/check-hash > > index b59fd2a..4c07274 100755 > > --- a/support/download/check-hash > > +++ b/support/download/check-hash > > @@ -10,6 +10,14 @@ set -e > > # saved as, to be able to match it to the corresponding hashes > > # in the .hash file > > > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) exec >/dev/null;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > h_file="${1}" > > file="${2}" > > base="${3}" > > diff --git a/support/download/cp b/support/download/cp > > index 463fc38..1c90f15 100755 > > --- a/support/download/cp > > +++ b/support/download/cp > > @@ -4,13 +4,23 @@ > > set -e > > > > # Download helper for cp, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: source file > > -# And this environment: > > +# > > +# Call it as: > > +# .../cp [-q] OUT_FILE SRC_FILE > > +# > > +# Environment: > > # LOCALFILES: the cp command to call > > > > +verbose=-v > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > source="${2}" > > > > -${LOCALFILES} "${source}" "${output}" > > +${LOCALFILES} ${verbose} "${source}" "${output}" > > diff --git a/support/download/cvs b/support/download/cvs > > index 56a11c2..eca6fc4 100755 > > --- a/support/download/cvs > > +++ b/support/download/cvs > > @@ -4,22 +4,29 @@ > > set -e > > > > # Download helper for cvs, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: cvs repo > > -# $3: cvs revision > > -# $4: package's name (eg. foobar) > > -# $5: package's basename (eg. foobar-1.2.3) > > -# And this environment: > > +# > > +# Call it as: > > +# .../cvs [-q] OUT_FILE CVS_URL REV PKG_NAME BASENAME > > +# > > +# Environment: > > # CVS : the cvs command to call > > > > +verbose= > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=-Q;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > repo="${2}" > > rev="${3}" > > rawname="${4}" > > basename="${5}" > > > > -${CVS} -z3 -d":pserver:anonymous@${repo}" \ > > +${CVS} ${verbose} -z3 -d":pserver:anonymous@${repo}" \ > > co -d "${basename}" -r ":${rev}" -P "${rawname}" > > > > tar czf "${output}" "${basename}" > > diff --git a/support/download/git b/support/download/git > > index 5d36ca4..0a0e81c 100755 > > --- a/support/download/git > > +++ b/support/download/git > > @@ -4,14 +4,22 @@ > > set -e > > > > # Download helper for git, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: git repo > > -# $3: git cset > > -# $4: package's basename (eg. foobar-1.2.3) > > -# And this environment: > > +# > > +# Call it as: > > +# .../git [-q] OUT_FILE REPO_URL CSET BASENAME > > +# > > +# Environment: > > # GIT : the git command to call > > > > +verbose=-v > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=-q;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > repo="${2}" > > cset="${3}" > > @@ -22,7 +30,7 @@ basename="${4}" > > git_done=0 > > if [ -n "$(${GIT} ls-remote "${repo}" "${cset}" 2>&1)" ]; then > > printf "Doing shallow clone\n" > > - if ${GIT} clone --depth 1 -b "${cset}" --bare "${repo}" "${basename}"; then > > + if ${GIT} clone ${verbose} --depth 1 -b "${cset}" --bare "${repo}" "${basename}"; then > > git_done=1 > > else > > printf "Shallow clone failed, falling back to doing a full clone\n" > > @@ -30,7 +38,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 --bare "${repo}" "${basename}" > > + ${GIT} clone ${verbose} --bare "${repo}" "${basename}" > > fi > > > > GIT_DIR="${basename}" \ > > diff --git a/support/download/hg b/support/download/hg > > index 66bd2ed..0d212c0 100755 > > --- a/support/download/hg > > +++ b/support/download/hg > > @@ -4,21 +4,29 @@ > > set -e > > > > # Download helper for hg, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: hg repo > > -# $3: hg cset > > -# $4: package's basename (eg. foobar-1.2.3) > > -# And this environment: > > +# > > +# Call it as: > > +# .../hg [-q] OUT_FILE REPO_URL CSET BASENAME > > +# > > +# Environment: > > # HG : the hg command to call > > > > +verbose=-v > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=-q;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > repo="${2}" > > cset="${3}" > > basename="${4}" > > > > -${HG} clone --noupdate --rev "${cset}" "${repo}" "${basename}" > > +${HG} clone ${verbose} --noupdate --rev "${cset}" "${repo}" "${basename}" > > > > -${HG} archive --repository "${basename}" --type tgz \ > > +${HG} archive ${verbose} --repository "${basename}" --type tgz \ > > --prefix "${basename}" --rev "${cset}" \ > > "${output}" > > diff --git a/support/download/scp b/support/download/scp > > index f3e92f3..189e5a4 100755 > > --- a/support/download/scp > > +++ b/support/download/scp > > @@ -4,13 +4,23 @@ > > set -e > > > > # Download helper for scp, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: URL > > -# And this environment: > > +# > > +# Call it as: > > +# .../scp [-q] OUT_FILE SRC_URL > > +# > > +# Environment: > > # SCP : the scp command to call > > > > +verbose=-v > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=-q;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > url="${2}" > > > > -${SCP} "${url}" "${output}" > > +${SCP} ${verbose} "${url}" "${output}" > > diff --git a/support/download/svn b/support/download/svn > > index a960f7d..45fc4bf 100755 > > --- a/support/download/svn > > +++ b/support/download/svn > > @@ -4,19 +4,27 @@ > > set -e > > > > # Download helper for svn, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: svn repo > > -# $3: svn revision > > -# $4: package's basename (eg. foobar-1.2.3) > > -# And this environment: > > +# > > +# Call it as: > > +# .../svn [-q] OUT_FILE REPO_URL REV BASNAME > > +# > > +# Environment: > > # SVN : the svn command to call > > > > +verbose= > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=-q;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > repo="${2}" > > rev="${3}" > > basename="${4}" > > > > -${SVN} export "${repo}@${rev}" "${basename}" > > +${SVN} export ${verbose} "${repo}@${rev}" "${basename}" > > > > tar czf "${output}" "${basename}" > > diff --git a/support/download/wget b/support/download/wget > > index 6b73726..e7e1d38 100755 > > --- a/support/download/wget > > +++ b/support/download/wget > > @@ -4,13 +4,23 @@ > > set -e > > > > # Download helper for wget, to be called from the download wrapper script > > -# Expected arguments: > > -# $1: output file > > -# $2: URL > > -# And this environment: > > +# > > +# Call it as: > > +# .../wget [-q] OUT_FILE URL > > +# > > +# Environment: > > # WGET : the wget command to call > > > > +verbose=-v > > +while getopts :q OPT; do > > + case "${OPT}" in > > + q) verbose=-q;; > > + \?) exit 1;; > > + esac > > +done > > +shift $((OPTIND-1)) > > + > > output="${1}" > > url="${2}" > > > > -${WGET} -O "${output}" "${url}" > > +${WGET} ${verbose} -O "${output}" "${url}" > > -- > > 1.9.1 > > -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'