#!/bin/sh
# Show gauge based on df (disk free)
# Faster than du method, but can be used on a partition only
# Call this:
# du DEVICE TOTAL_SIZE MSG
#
# Author: Eko M. Budi for VLocity Linux
# Modified by Uelsk8s for livecd installed renamed to dfgaugeX cause now it works in Xdialog
# License : GNU GPL

if [ "$DISPLAY" ]; then
  DIALOG="Xdialog"
else
  DIALOG="dialog"
fi

DEVICE=$1
tot=$2
NAME=$3
line=$(df $DEVICE | grep $DEVICE)
start=$(echo $line | cut -f 3 -d ' ')
mbtot=`expr $tot / 1024`
pct=1
(
while [ ! "$pct" = "100" ]; do
    line=$(df $DEVICE | grep $DEVICE)
    tst=$(echo $line | cut -f 3 -d ' ')
    progress=`expr $tst '-' $start`
    mbprog=`expr $progress '/' 1024`
    if [ $mbprog -gt $mbtot ]; then
       mbprog=`expr $mbtot - 1`
       pct=99
    else
       pct=`expr 100 '*' $mbprog`
       pct=`expr $pct '/' $mbtot`
    fi

    echo $pct
    echo "XXX"; echo "Installing $NAME ($mbprog of $mbtot MB)"; echo "XXX"
    echo $pct
    if [ "$pct" -lt "5" ]; then
    sleep 3
    fi
    ps aux | grep "cp --preserve"|grep -v grep >/dev/null
    if [ $? != 0 ]; then
	pct=100
	echo $pct
	echo "XXX"; echo "Install of $NAME is complete!"; echo "XXX"
	echo $pct
	echo "Install $NAME = $progress KB" >> /tmp/setup.log 
	sleep 3
	exit 0
    fi
    sleep 2
done
) | $DIALOG --backtitle "VLocity Linux Install" --title " Please Wait...." --gauge "" 8 66 0

