#!/bin/sh
#Uninstall packages
#VERSION 4.4

if [ -f $(dirname $0)/pfs ] ;  then
    . $(dirname $0)/pfs
else 
    . $(which pfs) || exit 13 
fi    

#help
HLP(){
echo "Usage:" 
echo "$0 <submodule>"
exit 1
}

for arg in $@
do
  case "${arg}" in
    "-h" | "--help")  HLP ;exit 1;;
  esac
done

[ $1 ] || HLP

allow_only_root
package_name=$(basename ${1%.$EXT} )

fileslist="${PFSDIR}/install/$package_name/pfs.files"
if [ -f "${fileslist}" ]; then 
  if [ -d "/tmp/.pfs/uninstall/$package_name" ]; then
    echo "Process is already running!" >&2; exit 1    
  fi
  mkdir -p "/tmp/.pfs/uninstall/$package_name"
  mv "${fileslist}" "/tmp/.pfs/uninstall/$package_name"
  rm -rf "${PFSDIR}/install/$package_name/" 
  found="$(find ${PFSDIR}/ -mindepth 3 -maxdepth 3 -type f -name 'pfs.files' | while read listfiles; do cat "${listfiles}" | sed -e 's:[\]:\\\\\\\\:g'; done)"
  listfiles="$(cat "/tmp/.pfs/uninstall/$package_name/pfs.files" | sed -e 's:^[^/]*::' -e 's:[\]:\\\\:g')"
  echo "${listfiles}" | while read file; do 
	if ! echo "${found}" | grep -q -F "${file}" ; then 
		[ ! -d $file ] && rm -f "${file}"  
		[ -d $file ] && echo $file
	fi 
  done | xargs rmdir
  echo "${listfiles}" | grep -q -F "/lib/modules" && depmod &
  [ ! -z "$(which ldconfig)" ] && echo "${listfiles}" | grep -q -F "/lib" && ldconfig &
  echo "${listfiles}" | grep -q -F "/usr/share/glib-2.0/schemas" && glib-compile-schemas /usr/share/glib-2.0/schemas/ &
  rm -rf "/tmp/.pfs/uninstall/$package_name"
else
  [ "$(pfsinfo "$1")" = "$package_name" ] && { echo "Package \"$package_name\" is not installed!" >&2; exit 1 ; }
  for i in $(pfsinfo "$1") ;do
    pfsuninstall "$i.pfs"
  done
fi
sync

exit 0
