From 896c436e140a4888c59135c7a2238e2ec4861632 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Thu, 4 Jun 2009 12:22:48 +0000 Subject: 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 --- buildrepo.in | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'buildrepo.in') diff --git a/buildrepo.in b/buildrepo.in index 5b4133d..2be50e1 100755 --- a/buildrepo.in +++ b/buildrepo.in @@ -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 -- cgit v1.2.3-60-g2f50