#!/bin/bash 

ok="[ [1;32mOK[0m ]"
fail="[ [5m[1;31mFAILD[0m ]"
present="[ [1;33mPRESENT[0m ]"
create="[ [1;35mCREATING[0m ]"

. /etc/rpm-get.conf

touch /var/lib/rpm-get/RPMS-list
max=`cat /var/lib/rpm-get/RPMS-list | grep rpm | grep -c .`

function a {
echo -en "\b-" && sleep 1 && echo -en "\b+" && echo -en " "
}

function rpmslist () {
echo "           (Dont be suprised if this operation takes 4 hours)      "
i="0"
last="0"
while [ "$i" != "$max" ]; do
for packages in `cat /var/lib/rpm-get/RPMS-list | grep "rpm" | awk -F' ' '{print $(1)}'`; do
echo $packages >> /var/lib/rpm-get/rpm-list.db; a
rpm -qlp $ftppath/RPMS/$packages >> /var/lib/rpm-get/rpm-list.db
i=`expr $i + 1`
if [ `expr $i / 75` == `expr $last + 1` ]; then last=`expr $last + 1`
   echo
fi
if [ "$i" == "$max" ]; then break; fi
done
done
}

function generate {
> /var/lib/rpm-get/rpm-list.db
echo -n "Generating /var/lib/rpm-get/rpm-list.db                           "
sleep 1
echo $create
rpmslist
echo $ok
echo -n "Compressing the database                                          " 
bzip2 /var/lib/rpm-get/rpm-list.db && echo $ok || $fail
}

yn=
function create {
if [ "x$yn" == "x" ]; then
echo
max=$(cat /var/lib/rpm-get/RPMS-list | grep rpm | grep -c .)
max2=$(bzcat /var/lib/rpm-get/rpm-list.db.bz2 | grep rpm | grep -v \/ | grep -c .)
max3=$(expr 0$max - 0$max2)
echo "There are $max2 packages in the database, and $max3 to add to the database"
echo -n "Do you wish to recreate the database ? [y/n]: "
read YN
fi

case $YN in
     y* | Y*)
	generate
        ;;
     n* | N*)
        echo
        echo "Skipping /var/lib/rpm-get/rpm-list.db (not good)" 
	;;
esac
}

echo -n "Generating /var/lib/rpm-get/RPMS-list                             "
lynx --source $ftppath/RPMS/ | awk -F'A>' '{print $1 $2}' | grep -v HREF | grep -v plain | awk -F'>' '{print $2}' | awk -F'</' '{print $1 $2}' > /var/lib/rpm-get/RPMS-list 2>/dev/null && echo "$ok" || echo "$fail"

echo -n "Generating /var/lib/rpm-get/SRPMS-list                            "
lynx --source $sourcepath | awk -F'A>' '{print $1 $2}' | grep -v HREF | grep -v plain | awk -F'>' '{print $2}' | awk -F'</' '{print $1 $2}' > /var/lib/rpm-get/SRPMS-list 2>/dev/null && echo "$ok" || echo "$fail"

echo -n "Checking to see if /var/lib/rpm-get/rpm-list.db.bz2 is present:   "
test -f /var/lib/rpm-get/rpm-list.db.bz2 && echo "$present" || echo $fail
create

echo -e "\n\n" 
echo "                                 [ [0;36mDONE[0m ]"
