Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=5af7b65a749ffee68a5e1d563568a77f1b1ac023

commit 5af7b65a749ffee68a5e1d563568a77f1b1ac023
Author: crazy <[EMAIL PROTECTED]>
Date:   Mon Feb 11 14:29:53 2008 +0100

makepkg: chroot_clean() add missing checks
* add missing check for chroot_clean() to see whatever the chroot dir exists
* before the patch : - sudo makepkg -t foo,bar -C - touch: cannot touch 
`/data/chroot/chroot.crazy/foo,bar/var/tmp/fst/lock': No such file or directory 
- ==> Removing unnecessary packages. - /usr/sbin/chroot: cannot change root 
directory to /data/chroot/chroot.crazy/foo,bar: No such file or directory - 
/usr/sbin/chroot: cannot change root directory to 
/data/chroot/chroot.crazy/foo,bar: No such file or directory - ==> Cleaning 
chroot.
* after : - sudo ./makepkg -t foo,bar -C - ==> ERROR: 
/data/chroot/chroot.crazy/foo,bar does not exist, can't clean a non-existing 
chroot.

diff --git a/scripts/makepkg b/scripts/makepkg
index 523fba4..cfecd1a 100755
--- a/scripts/makepkg
+++ b/scripts/makepkg
@@ -398,27 +398,32 @@ chroot_clean()
{
if [ "$CHROOT" = "1" ]; then
$ECHO $CHROOTDIR |grep -q $TREE$ || CHROOTDIR="$CHROOTDIR/$TREE"
-               chroot_lock
-               msg "Removing unnecessary packages."
-               for i in "$COREPKGS"
-               do
-                       corelist="$corelist `/usr/sbin/chroot $CHROOTDIR 
pacman-g2 -Sg $i |grep -v '^\w'`"
-               done
-               for i in `/usr/sbin/chroot $CHROOTDIR pacman-g2 -Q|sed 's/\([^ 
]*\) .*/\1/'`
-               do
-                       if ! $ECHO $corelist |grep -q $i; then
-                               removelist="$removelist $i"
-                       fi
-               done
-               if [ ! -z "$removelist" ]; then
-                       /usr/sbin/chroot $CHROOTDIR pacman-g2 -Rcn $removelist 
--noconfirm
-                       if [ "$?" != "0" ]; then
-                               error "Failed to remove packages."
-                               exit 1
+               if [ -d "$CHROOTDIR" ]; then
+                       chroot_lock
+                       msg "Removing unnecessary packages."
+                       for i in "$COREPKGS"
+                       do
+                               corelist="$corelist `/usr/sbin/chroot 
$CHROOTDIR pacman-g2 -Sg $i |grep -v '^\w'`"
+                       done
+                       for i in `/usr/sbin/chroot $CHROOTDIR pacman-g2 -Q|sed 
's/\([^ ]*\) .*/\1/'`
+                       do
+                               if ! $ECHO $corelist |grep -q $i; then
+                                       removelist="$removelist $i"
+                               fi
+                       done
+                       if [ ! -z "$removelist" ]; then
+                               /usr/sbin/chroot $CHROOTDIR pacman-g2 -Rcn 
$removelist --noconfirm
+                               if [ "$?" != "0" ]; then
+                                       error "Failed to remove packages."
+                                       exit 1
+                               fi
fi
+                       msg "Cleaning chroot."
+                       rm -rf $CHROOTDIR/var/tmp/fst/*
+               else
+                       error "$CHROOTDIR does not exist, can't clean a 
non-existing chroot."
+                       exit 1
fi
-               msg "Cleaning chroot."
-               rm -rf $CHROOTDIR/var/tmp/fst/*
fi
}
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to