Merge pull request #85410 from matthewbauer/skip-post-fetch-in-hashed-mirrors

fetchurl: don’t run ‘postFetch’ on hashed-mirrors
This commit is contained in:
Benjamin Hipple 2020-05-04 22:45:19 -04:00 committed by GitHub
commit ba160ab741
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -47,13 +47,18 @@ tryDownload() {
finish() {
local skipPostFetch="$1"
set +o noglob
if [[ $executable == "1" ]]; then
chmod +x $downloadedFile
fi
runHook postFetch
if [ -z "$skipPostFetch" ]; then
runHook postFetch
fi
exit 0
}
@ -69,7 +74,13 @@ tryHashedMirrors() {
--fail --silent --show-error --head "$url" \
--write-out "%{http_code}" --output /dev/null > code 2> log; then
tryDownload "$url"
if test -n "$success"; then finish; fi
# We skip postFetch here, because hashed-mirrors are
# already content addressed. So if $outputHash is in the
# hashed-mirror, changes from postFetch would already be
# made. So, running postFetch will end up applying the
# change /again/, which we dont want.
if test -n "$success"; then finish skipPostFetch; fi
else
# Be quiet about 404 errors, which we interpret as the file
# not being present on this particular mirror.