#!/bin/sh
#
# /sbin/fwupdate
#
# (C)opyright Tecomat a.s.
#
# 2011/06/10 Hosek Martin <hosek@tecomat.cz>
#

UPDATE_DIR="/tmp/update"

status=0

Unpack()
{
    echo -n "  Unpacking ... "

    gzip -d "$1" >/dev/null 2>&1

    file=`echo "$1" | sed s/'\.tgz'/'\.tar'/`

    tar xf "$file" >/dev/null 2>&1

    ret=$?

    status=$(($status + $ret))

    if [ $ret == 0 ]; then
	echo "ok"
    else
	echo "error"
	echo "[Unable to unpack file: $file]"
    fi

    return $ret
}

Update()
{
    echo -n "  Updating ... "

    if [ -f "$1"/scripts/install ]; then
	cd "$1"
	scripts/install
	ret=$?
	cd ..
    else
	ret=1
    fi

    status=$(($status + $ret))

    if [ $ret == 0 ]; then
	echo "ok"
    else
	echo "error"
	echo "[Install script failed witch error: $ret]"
    fi

    return $ret
}

Delete()
{
    echo -n "  Deleting ... "

    for i in $*; do
	rm -rf "$i"
        ret=$?
    done

    if [ $ret == 0 ]; then
	echo "ok"
    else
	echo "error"
    fi

    return 0
}

cd $UPDATE_DIR

for file in `ls [0-9]*_update.tgz 2>/dev/null`; do
    file="`basename $file`"
    dir="`echo $file | sed s/'\..*$'/''/`"

    echo "Process the file: $file"

    Unpack "$file" || break
    Update "$dir" || break

    Delete "$file" "$dir"
done

Delete "$file" "$dir"

exit $status
