kumquat-buildroot/support/download/cvs
Thomas De Schampheleire 3300788ce0 support/download: rename internal 'verbose' variable where applicable
Most 'verbose' variable inside the download helpers actually mean 'quiet'.
I.e. they are assigned in case quiet operation is requested, and empty in
case of non-quiet operation. Using the name 'verbose' for such a variable is
confusing, especially when you want to test the variable on emptiness or
non-emptiness (in a subsequent commit).

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-03-16 23:26:12 +01:00

64 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# We want to catch any unexpected failure, and exit immediately
set -e
# Download helper for cvs, to be called from the download wrapper script
#
# Options:
# -q Be quiet
# -o FILE Generate archive in FILE.
# -u URI Checkout from repository at URI.
# -c REV Use revision REV.
# -N RAWNAME Use rawname (aka module name) RAWNAME.
# -n NAME Use basename NAME.
#
# Environment:
# CVS : the cvs command to call
quiet=
while getopts "${BR_BACKEND_DL_GETOPTS}" OPT; do
case "${OPT}" in
q) quiet=-Q;;
o) output="${OPTARG}";;
u) uri="${OPTARG#*://}";;
c) rev="${OPTARG}";;
N) rawname="${OPTARG}";;
n) basename="${OPTARG}";;
:) printf "option '%s' expects a mandatory argument\n" "${OPTARG}"; exit 1;;
\?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;;
esac
done
shift $((OPTIND-1)) # 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).
# If the CVS server is deadlocked, the client will never return (cfr.
# http://autobuild.buildroot.net/results/23d/23d1034b33d0354de15de2ec4a8ccd0603e8db78/build-end.log
# ). Since nobody sane will put large code bases in CVS, a timeout of
# 10 minutes should do the trick.
_cvs() {
eval timeout 10m ${CVS} "${@}"
}
if [[ ${rev} =~ ^[0-9] ]]; then
# Date, because a tag or a branch cannot begin with a number
select="-D"
else
# Tag or branch
select="-r"
fi
# The absence of an initial : on ${uri} means access method undefined
if [[ ! "${uri}" =~ ^: ]]; then
# defaults to anonymous pserver
uri=":pserver:anonymous@${uri}"
fi
export TZ=UTC
_cvs ${quiet} -z3 -d"'${uri}'" \
co "${@}" -d "'${basename}'" ${select} "'${rev}'" -P "'${rawname}'"
tar czf "${output}" "${basename}"