]> git.pld-linux.org Git - projects/pld-ftp-admin.git/commitdiff
- rough version, but works... need to incorporate all this functionality into
authorMariusz Mazur <mmazur@pld-linux.org>
Wed, 29 Sep 2004 21:11:05 +0000 (21:11 +0000)
committerMariusz Mazur <mmazur@pld-linux.org>
Wed, 29 Sep 2004 21:11:05 +0000 (21:11 +0000)
  move.sh

Changed files:
    bin/check-move.sh -> 1.1

bin/check-move.sh [new file with mode: 0755]

diff --git a/bin/check-move.sh b/bin/check-move.sh
new file mode 100755 (executable)
index 0000000..73a765c
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+. ~/pld-ftp-admin/scripts/functions
+
+if [ "$#" -lt "3" ]; then
+       echo "Not enough parametrs given"
+       echo "check-build.sh tree package1 [package2...]"
+       exit
+fi
+
+if [ ! -d "$FTP_DIR/$1" ]; then
+       echo "$FTP_DIR/$1 does not exist"
+       exit
+fi
+
+if [ ! -d "$FTP_DIR/$1" ]; then
+       echo "$FTP_DIR/$2 does not exist"
+       exit
+fi
+
+# we set $trees and $pkglist
+srctree=$1
+dsttree=$2
+shift 2
+
+init_pkglist "$srctree" "$*"
+
+if [ "$errnum" != "0" ]; then
+       echo "$errnum error(s) encountered... aborting"
+       exit
+fi
+
+cd ~/tmp
+rm -f queue.txt
+wget -nv "http://ep09.pld-linux.org/~builderth/queue.txt"
+cat queue.txt|grep '^group:\|builders:'| \
+       sed -e 's,^[ ]*,,' -e 's,^group.*id=\(.*\) pri=.*$,\1:,' |\
+       perl -e '$_=join("",<STDIN>);~s/\nbuilders://g;print;'>q.txt
+
+
+cd "$FTP_DIR/$srctree/SRPMS/.metadata/"
+waserror=0
+for pkg in $pkglist; do
+       for buildid in `grep ^info:buildid: $pkg.src.rpm.info|cut -d: -f 3`; do
+               if [ -n "`grep ^$buildid: ~/tmp/q.txt|grep '?'`" ]; then
+                       waserror=$(($waserror+1))
+                       echo "Building of package $pkg (buildid $buildid) not finished"
+               fi
+       done
+done
+
+cd "$FTP_DIR/$dsttree/SRPMS/.metadata/"
+for pkg in $pkglist; do
+       olderpkgs=`find_other_pkgs "$dsttree" "$pkg"`
+       if [ -z "$olderpkgs" ]; then
+               continue
+       fi
+       # Archs that are already provided by the package that's in dest tree
+       availablearchs=""
+       for oldpkg in $olderpkgs; do
+               tmparchs="`cat $oldpkg.src.rpm.info|grep ^file:|cut -d: -f 2|sort|uniq`"
+               availablearchs="$tmparchs $availablearchs" 
+       done
+       availablearchs="`echo \"$availablearchs\"|sort|uniq`"
+       grepstring=`echo $availablearchs| \
+                               sed -e 's,^,^,' -e 's,$,$,' -e 's, ,$\\\|^,g'`
+       newarchs="`cat $FTP_DIR/$srctree/SRPMS/.metadata/$pkg.src.rpm.info| \
+                               grep ^file:|cut -d: -f 2|sort|uniq`"
+       # Number of archs already provided by the package that's in dest tree
+       availablearchsnum="`echo \"$availablearchs\"|wc -l`"
+       # Number of archs supported by dst pkg that are supported by src pkg
+       diffnum="`echo \"$newarchs\"|grep $grepstring|wc -l`"
+
+       if [ $availablearchsnum != $diffnum ]; then
+               waserror=$(($waserror+1))
+               echo "$availablearchs">~/tmp/a.list
+               echo "$newarchs" > ~/tmp/n.list
+               missingarchs=`diff ~/tmp/{a,n}.list |grep '^<'|sed -e 's,^..,,'`
+               echo "Moving package $pkg would mean removal of archs: $missingarchs"
+       fi
+       
+done
+
+
+
+if [ "$waserror" != "0" ]; then
+       echo "$waserror error(s) encountered... move will fail"
+       exit
+fi
+
This page took 0.046302 seconds and 4 git commands to generate.