
#1.1.3
if [ "$SETUP_MODE" = "" ]; then
    echoc RED "This script cannot be launched interactively, use setup --help"
    USCITA=100 ; exit 100
fi

echoc PURPLE "setup--upgrade-all utility (0.1.0 - 1999-0-25)"
echoc PURPLE "@1999 by AGX for Bad Penguin"
echoc PURPLE "This utility upgrade all your installed packages"
echo

DISTDIR="/cdrom"
if [ ! "$SETUP_FILE" = "/" ]; then
  if [ ! "$SETUP_FILE" = "" ]; then
    if [ -d $SETUP_FILE ]; then
      DISTDIR="$SETUP_FILE"
    fi
  fi
fi

DEPFILE=$SPOOL_QUEUE/DEPENDENCIES
COUNT=0


# Check Source Dir
if [ ! -d $DISTDIR/agxlinux/packages ]; then
  echoc RED "The directory /agxlinux/packages was not found under $DISTDIR !"
  USCITA=1 ; exit 1
fi


# Enumerate Installed Packages
echoc YELLOW "Finding packages to upgrade (take a while). Please, wait ..."
for i in ${PKG_SPOOL}/* ; do
  if [ -d "$i" ]; then
    PKGNAME="`basename $i`"
    if [ -f $i/SONAME ]; then
      CLASSNAME="`cat $i/SONAME`"
      if [ -f $i/MAJOR ]; then
        CLASSNAME="${CLASSNAME}_`cat $i/MAJOR`"
      fi
    else
      CLASSNAME="`echo $PKGNAME | cut -f 1 -d '.' `"
    fi
    #echoc CYAN "Found $PKGNAME, searching for $CLASSNAME"

    PKGNEW="`find $DISTDIR/agxlinux/packages/ -name \"$CLASSNAME*\" | grep -v z-removed | tail -n 1`"
    if [ "$PKGNEW" = "" ]; then
      echoc YELLOW "Checkout! Package $CLASSNAME seems not present into the distribution"
    else
      #echo "Found $PKGNEW"
      PKGNEWNAME="`basename $PKGNEW .${PKGEXT}`"
      PKGNEWDIR="`dirname $PKGNEW`"
      PKGNEWDIR="`basename $PKGNEWDIR`"
      if [ ! "$PKGNAME" = "$PKGNEWNAME" ]; then
        echoc GREEN "Scheduling new package:"
        echoc GREEN "   - $PKGNEW"
        echoc GREEN "   - $PKGNEWNAME into $PKGNEWDIR"
	echo "$PKGNEWDIR	$PKGNEWNAME" >> $DEPFILE
        COUNT=`expr $COUNT + 1`
      fi
    fi   
  fi
done

echo
echoc CYAN "Nr. $COUNT packages have been scheduled."
echoc CYAN "Please run:"
echoc CYAN "     setup --finalize $DISTDIR"
echo
