Re-add the git_done variable (lost in commit [1]). Fixes download problem reported by Rohit Kumar [2]. [1] http://git.buildroot.net/buildroot/commit/?id=7e40a1103a919a8177f00ddca2b46b4439953511 [2] http://lists.busybox.net/pipermail/buildroot/2014-August/103733.html Signed-off-by: Peter Seiderer <ps.report@gmx.net> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
40 lines
1019 B
Bash
Executable File
40 lines
1019 B
Bash
Executable File
#!/bin/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
|
|
# Expected arguments:
|
|
# $1: output file
|
|
# $2: git repo
|
|
# $3: git cset
|
|
# $4: package's basename (eg. foobar-1.2.3)
|
|
# And this environment:
|
|
# GIT : the git command to call
|
|
|
|
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 --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 --bare "${repo}" "${basename}"
|
|
fi
|
|
|
|
GIT_DIR="${basename}" \
|
|
${GIT} archive --prefix="${basename}/" -o "${output}" --format=tar "${cset}"
|
|
|
|
gzip "${output}"
|