Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/4 v9] support/download: support -q in all download backends
Date: Fri, 2 Jan 2015 16:41:03 +0100	[thread overview]
Message-ID: <20150102154103.GC4392@free.fr> (raw)
In-Reply-To: <CAHkwnC_Qmf-ye+N29tdo_RXiAhiogCoE0KsRVpsjJXRdow104g@mail.gmail.com>

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 <yann.morin.1998@free.fr> 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" <yann.morin.1998@free.fr>
> > Cc: Fabio Porcedda <fabio.porcedda@gmail.com>
> >
> > ---
> > 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.  |
'------------------------------^-------^------------------^--------------------'

  reply	other threads:[~2015-01-02 15:41 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-01 20:03 [Buildroot] [PATCH 0/4 v9] Improve silent builds (branch yem/fabio/silent) Yann E. MORIN
2015-01-01 20:03 ` [Buildroot] [PATCH 1/4 v9] Makefile: improve detection of make "-s" flag Yann E. MORIN
2015-01-02 15:34   ` Thomas Petazzoni
2015-01-01 20:03 ` [Buildroot] [PATCH 2/4 v9] support/download: support -q in all download backends Yann E. MORIN
2015-01-02 15:01   ` Fabio Porcedda
2015-01-02 15:41     ` Yann E. MORIN [this message]
2015-01-01 20:03 ` [Buildroot] [PATCH 3/4 v9] pkg-download: silence downloads if make is silent Yann E. MORIN
2015-01-01 21:56   ` Thomas Petazzoni
2015-01-01 22:02     ` Yann E. MORIN
2015-01-02 15:36       ` Thomas Petazzoni
2015-01-02 15:41         ` Yann E. MORIN
2015-01-01 20:03 ` [Buildroot] [PATCH 4/4 v9] package/pkg-download: do not hard-code QUIET Yann E. MORIN

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=20150102154103.GC4392@free.fr \
    --to=yann.morin.1998@free.fr \
    --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