buildrepo: check if all files exist before try copy anything

seems like copy removes destination if source does not exist so
we ended up with a buildrepo that removed all packages
This commit is contained in:
Natanael Copa 2009-06-04 12:22:48 +00:00
parent 494960f291
commit 896c436e14
1 changed files with 14 additions and 3 deletions

View File

@ -28,6 +28,14 @@ listpackages() {
done
}
all_exist() {
while [ $# -gt 0 ]; do
[ -e "$1" ] || return 1
shift 1
done
return 0
}
build() {
local repo="$1" i indexupdate needbuild
@ -47,15 +55,18 @@ build() {
continue
fi
indexupdate="$indexupdate $i"
# try link or copy the files if they are in the ports dir
pkgs=$(abuild listpkg)
if cp -p -l $pkgs "$repodir/$repo"/ 2>/dev/null \
|| cp -p $pkgs "$repodir/$repo"/ 2>/dev/null; then
if all_exist $pkgs; then
echo ">>> Copying " $pkgs
cp -p -l $pkgs "$repodir/$repo"/ 2>/dev/null \
|| cp -p $pkgs "$repodir/$repo"/ \
|| needbuild="$needbuild $i"
else
needbuild="$needbuild $i"
fi
indexupdate="$indexupdate $i"
done
# build the postponed packages if any