4bf1174a83
We expresely call printf in the git helper, calls which were not addresed in the previous silent-build patchset. Just redirect stdout to oblivion when being silent. Reported-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: Fabio Porcedda <fabio.porcedda@gmail.com> Tested-by: Fabio Porcedda <fabio.porcedda@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
48 lines
1.2 KiB
Bash
Executable File
48 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# We want to catch any unexpected failure, and exit immediately
|
|
set -e
|
|
|
|
# Download helper for git, to be called from the download wrapper script
|
|
#
|
|
# 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; exec >/dev/null;;
|
|
\?) printf "unknown option '%s'\n" "${OPTARG}" >&2; exit 1;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
|
|
output="${1}"
|
|
repo="${2}"
|
|
cset="${3}"
|
|
basename="${4}"
|
|
|
|
# Try to see if we can do a shallow clone, since it is faster
|
|
# than a full clone.
|
|
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}" --bare "${repo}" "${basename}"; then
|
|
git_done=1
|
|
else
|
|
printf "Shallow clone failed, falling back to doing a full clone\n"
|
|
fi
|
|
fi
|
|
if [ ${git_done} -eq 0 ]; then
|
|
printf "Doing full clone\n"
|
|
${GIT} clone ${verbose} --bare "${repo}" "${basename}"
|
|
fi
|
|
|
|
GIT_DIR="${basename}" \
|
|
${GIT} archive --prefix="${basename}/" -o "${output}.tmp" --format=tar "${cset}"
|
|
|
|
gzip <"${output}.tmp" >"${output}"
|