From: Luke Shumaker <luke...@parabola.nu>

This should have the same result, but be a bit less confusing to read.

Also, have a slightly more specific error message on a missing PKGBUILD.
---
 db-move | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/db-move b/db-move
index 03debfc..2627b9a 100755
--- a/db-move
+++ b/db-move
@@ -28,16 +28,23 @@ done
 arch_svn checkout -q -N "${SVNREPO}" "${WORKDIR}/svn" >/dev/null
 for pkgbase in "${args[@]:2}"; do
        arch_svn up -q "${WORKDIR}/svn/${pkgbase}" >/dev/null
+       found=false
        for tarch in "${ARCHES[@]}"; do
                while read -r pkgarch pkgfile; do
+
                        
svnrepo_from="${WORKDIR}/svn/${pkgbase}/repos/${repo_from}-${pkgarch}"
-                       if [[ -r ${svnrepo_from}/PKGBUILD ]]; then
-                               getpkgfile 
"${ftppath_from}/${tarch}/${pkgfile}" >/dev/null
-                               continue 3
+                       if ! [[ -r ${svnrepo_from}/PKGBUILD ]]; then
+                               die "%s not found in %s-%s" "$pkgbase" 
"$repo_from" "$pkgarch"
                        fi
+
+                       # getpkgfile will `exit` for us if it fails;
+                       # no need to check its result
+                       getpkgfile "${ftppath_from}/${tarch}/${pkgfile}" 
>/dev/null
+
+                       found=true
                done < <(getdbinfo "$repo_from" "$tarch" "$pkgbase" 
ARCH,FILENAME)
        done
-       die "%s not found in %s" "$pkgbase" "$repo_from"
+       [[ $found = true ]] || die "%s not found in %s" "$pkgbase" "$repo_from"
 done
 
 msg "Moving packages from [%s] to [%s]..." "$repo_from" "$repo_to"
-- 
2.17.1

Reply via email to