#!/bin/bash

function usage()
{
    echo "Usage: $0 <addon.rpm>" >/dev/stderr
    exit 1
}

ADDON=$1
if test -z $ADDON; then
    echo "No addon specified" >/dev/stderr
    usage
fi

if ! rpm -qp $ADDON >/dev/null 2>&1; then
    echo "$ADDON is not a RPM file" >/dev/stderr
    usage
fi

NAME=`rpm -qp --queryformat "%{NAME}\n" $ADDON`

if ! rpm -qlp $ADDON | grep "/var/lib/addons/$NAME.squash" >/dev/null 2>&1; then
    echo "Package is not a valid Thin Client RPM" > /dev/stderr
    exit 1
fi

if rpm -q $NAME >/dev/null 2>&1; then
    INSTALLED="yes"
else
    INSTALLED="no"
fi

installedProvides=`rpm -qa --provides | grep "ADDON:" 2>/dev/null`
addonRequires=`rpm -qp --requires $ADDON | grep "ADDON:"`
for req in $addonRequires; do
    found="no"
    for installed in $installedProvides; do
        if test $installed = $req; then
            found="yes"
        fi
    done

    if test $found = "no"; then
        reqName=`echo $req | cut -d: -f2`
        echo "Dependency '$reqName' was not found" >/dev/stderr
        exit 1
    fi
done

if test $INSTALLED = "yes";then
    rpm -e --nodeps $NAME
fi
rpm -Uh --nodeps --force $ADDON
