2009/3/11 Aaron Griffin <[email protected]>:
> I guess the only thing this DOESN'T take into account is the
> symlinking part, but that would just be a single "special case" when
> copying
>

Modified patch based on the any-arch branch:
(I've added SVN check for ANYPKGS separately and symlinks)

--- db-update   2009-03-11 21:52:58.000000000 +0530
+++ db-update   2009-03-11 21:46:46.000000000 +0530
@@ -79,6 +79,7 @@
        current_arch="$A"

        ftppath="$FTP_BASE/$reponame/os/$current_arch/"
+       ftppath_any="$FTP_BASE/$reponame/os/any/"

        if [ ! -d "$ftppath" ]; then
                echo "FTP path for this repo ($reponame) is missing"
@@ -105,6 +106,7 @@
        to_add=""
        if [ -d "$stagedir" ]; then
                ADDPKGS="$(/bin/ls $stagedir/*-${current_arch}$PKGEXT 
2>/dev/null)"
+               ANYPKGS="$(/bin/ls $stagedir/*-any$PKGEXT 2>/dev/null)"
        fi

        if [ -n "$ADDPKGS" ]; then
@@ -145,6 +147,30 @@
                        fi
                done

+               for pkg in $ANYPKGS; do
+                       _pkgfile=$(basename $pkg)
+                       _pkgname="$(getpkgname $pkg)"
+                       svnrepo="$reponame-any"
+                       echo "    Validating package arch (any) $_pkgname"
+                       if ! check_pkg_arch "$pkg" "any"; then
+                               echo "   ERROR: $_pkgfile is not architecture 
independent!"
+                       else
+                               echo "    Checking SVN for $_pkgname"
+                               /usr/bin/svn up -q $_pkgname
+                               if [ -d "$_pkgname/repos/$svnrepo" ]; then
+                                       . 
"$_pkgname/repos/$svnrepo/$BUILDSCRIPT"
+                                       if [ "$_pkgfile" = 
"$pkgname-$pkgver-$pkgrel-any$PKGEXT" ]; then
+                                               to_add="$to_add $pkg"
+                                       else
+                                               echo "    WARNING: $_pkgfile 
does not match $BUILDSCRIPT in $svnrepo"
+                                       fi
+                               else
+                                       echo "    WARNING: Package $_pkgname 
not found in $svnrepo"
+                               fi
+                       fi
+               done
+
+
                if [ -n "$to_add" ]; then
                        cd "$WORKDIR/build/"
                        for f in $to_add; do /bin/cp "$f" .; done
@@ -164,12 +190,16 @@
        # if non empty, move all build dirs
        if [ $(/bin/ls "$WORKDIR/build/" 2>/dev/null | wc -l) != 0 ]; then
                echo "Copying new files to '$ftppath'"
-               for f in "$WORKDIR/build/"*; do
+               for f in "$WORKDIR/build/"*$current_arch.pkg.tar.gz; do
                        if ! /bin/cp "$f" "$ftppath"; then
                                die "error: failure while copying files to 
$ftppath"
                        fi
                done
-
+               for f in "$WORKDIR/build/"*any.pkg.tar.gz; do
+                       /bin/cp "$f" "$ftppath_any" || die "error: failure 
while copying
files to $ftppath_any"
+                       ln -s "$ftppath_any/$f" "$ftppath/$f" || die "error: 
failed to
make link for $f."
+               done
+               /bin/cp "$WORKDIR/build/$reponame.db"* "$ftppath" || die 
"failed to
move repository $reponame-$A".
        else
                echo "Nothing to copy, no work done"
        fi

-- 
Abhishek

Reply via email to