makepkg: Empty/create only $pkgdir's relevant to current PKGBUILD

Currently makepkg clears the whole $pkgbasedir which is needless. Moreover,
in the obscure case of multiple makepkg runs (with different $pkgname) that
share a $pkgdirbase, only $pkgdir's from the last run will remain. Since
I consider the contents of $pkgdir an important artifact, this commit restricts
the deletion to individual $pkgdir's.

When CLEANUP is set, the behavior is unchanged.

Discussed in:
https://lists.archlinux.org/pipermail/pacman-dev/2015-February/019939.html

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
David Macek 2015-03-26 19:59:41 +01:00 committed by Allan McRae
parent 1040ad4e71
commit f9423cfa5d
1 changed files with 5 additions and 2 deletions

View File

@ -3413,10 +3413,13 @@ if (( NOBUILD )); then
msg "$(gettext "Sources are ready.")"
exit 0 #E_OK
else
# clean existing pkg directory
# clean existing pkg directories
if [[ -d $pkgdirbase ]]; then
msg "$(gettext "Removing existing %s directory...")" "\$pkgdir/"
rm -rf "$pkgdirbase"
for pkg in "${pkgname[@]}"; do
rm -rf "$pkgdirbase/$pkg"
done
unset pkg
fi
mkdir -p "$pkgdirbase"
chmod a-srwx "$pkgdirbase"