Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2023-05-23 23:53:51 +0200
committerErich Eckner <git@eckner.net>2023-05-23 23:53:51 +0200
commitaaa455e2e41e10fdc75d61c7db29e3e5e5dd525f (patch)
treeeff71d6274dd56d288671735bfae89d8f09d562d /bin
parenta2cce02c00cb71d9d77399ae1f50311bf8e45ecd (diff)
try to do a shallow clone before building
Diffstat (limited to 'bin')
-rwxr-xr-xbin/build-packages30
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/build-packages b/bin/build-packages
index 059593c..56c60c3 100755
--- a/bin/build-packages
+++ b/bin/build-packages
@@ -532,6 +532,36 @@ while [ "${count}" -ne 0 ] && \
date -u --iso-8601=seconds | \
cut -d+ -f1
).build-log"
+ ( # new shell is intentional
+ set -e
+ CARCH="${arch}"
+ . /usr/share/makepkg/util/source.sh
+ . PKGBUILD
+ printf '%s\n' "${source[@]}" \
+ | grep '^git+' \
+ | while read -r netfile; do
+ fragment=$(get_uri_fragment "$netfile")
+ [ -z "${fragment}" ] && continue
+ case "${fragment%%=*}" in
+ 'commit'|'tag')
+ ref="${fragment##*=}"
+ ;;
+ 'branch')
+ ref="origin/${fragment##*=}"
+ ;;
+ *)
+ continue
+ esac
+ path=$(get_filename "$netfile")
+ git init "${path}"
+ url=$(get_url "$netfile")
+ url=${url#git+}
+ url=${url%%#*}
+ url=${url%%\?*}
+ git -C "${path}" remote add origin "${url}"
+ git -C "${path}" fetch --depth=1 origin "${ref}"
+ done
+ )
if CARCH="${arch}" makepkg --verifysource 2> "${log_file}"; then
success=true
rm "${log_file}"