#!/bin/sh
#
# VMTux.net
#
# /usr/bin/vmt-uninstall
#
. /etc/vmt/vmt-colors
. /etc/vmt/vmt-conf

PATH=/bin:/sbin

umask 022

if [ "$(id -u)" -eq 0 ]; then
  echo "${BRed}Please run as user.${Reset}" 
  exit 1; 
fi

if [ ! -d $VMT_PKG_DIR ]; then
  echo "${BRed}No packages directory found.${Reset}" 
  exit 1; 
fi

if [ -z "$1" ]; then echo "Usage: $0 package-name(s)"; exit 0; fi

function color()
{
  set -o pipefail
  "$@" > >(sed $'s,.*,\033[1;96m&\033[m,') 2> >(sed $'s,.*,\033[1;91m&\033[m,'>&2)
}

function UnInstall()
{
  package="${1%.squ}"
  
  mountpoint=${VMT_LOOP}/${package}

  echo "${BBlue}Un-Installing ${BYellow}${package}${Reset} ..."

  afterburner="${mountpoint}/usr/local/vmt-afterburner/${package}"
  if [ -x "$afterburner" ]; then
    PATH=/usr/local/bin:/usr/local/sbin:/bin:/sbin
    color sudo /bin/sh "$afterburner" --uninstall
    PATH=/bin:/sbin
  fi

# busybox find has no -lname option (yet)   
# cant us findutils (its a package also)
# sudo find /usr -lname "${LOOP}/${APP}/*" -delete

  if [ -x /usr/local/bin/find ]; then
    sudo /usr/local/bin/find /usr -lname "${mountpoint}/*" -delete
    sudo /usr/local/bin/find /etc -lname "${mountpoint}/*" -delete
  else
    echo "working slow. vmt-install findutils to speed up"
    find /usr/* -type l -exec readlink -nf {} ';' -exec echo " {}" ';' | \
      grep "${mountpoint}/" | \
      awk '{ print $2 }' | sudo xargs rm -f
  fi

  sync ; sync
  
  sudo ldconfig
  sudo depmod

  if [ -d $mountpoint ]; then 
    sudo umount "${mountpoint}"
    sudo rmdir "${mountpoint}"
  fi

  sed "/^${package}$/d" -i ${VMT_BOOTLIST}
  
  rm -f ${VMT_PKG_DIR}/${package}.squ
  rm -f ${VMT_PKG_DIR}/${package}.dep
  rm -f ${VMT_PKG_DIR}/${package}.md5

  echo "${BBlue}Un-Installing ${BYellow}${package} ${BGreen}done.${Reset}"
}

for pack in "$@"; do
  packages=$(find $VMT_PKG_DIR -name "${pack}*.squ" -exec basename {} .squ \;)
  if [ -z "${packages}" ]; then
    packages=$(find /mnt/loop -maxdepth 1 -type d -name "${pack}*" -exec basename {} \;)
  fi
  for package in $packages; do
    read -p "Uninstall ${package} [Yn]? " yesno
    if [ "$yesno" == "Y" ]; then
      UnInstall ${package}
    fi
  done
done

exit 0
