#!/bin/bash
a=sfslinux@gmail.com 
v="121012"

if [ "`grep debian /etc/apt/sources.list`" = "" ];then
	mount="mount"
    else
	mount="busybox mount"
fi

self="${0#*/}"
sfs_path="`dirname $1`" #may need to check
sfs_file="$sfs_path/`basename $1`"
sfs_module="`basename $1 .sfs`"
export sfs_module="$sfs_module"
##mount_point="/mnt/.$sfs_module"
mount_point="/mnt/$sfs_module.sfs"
[ -x /usr/local/bin/$sfs_module ] && /usr/local/bin/$sfs_module
#--- Check args and requirements ---

if [ $# -ne 1 ] ; then
   echo "Usage: $self file.sfs"
   exit 1
else
check-a () {
   if [ `echo $1 | grep -ice ".\.sfs$"` -ne 1 ]; then
      echo "Usage: $self file.sfs"
      exit 1
   elif [ ! -f $sfs_file ]; then
      if [ -L $sfs_file ]; then
      	echo "Symbolic Link target not found!"
      else
      	echo "File not found!"
      fi
      exit 1
   fi
}
fi

$mount -t aufs -o remount,del:"$mount_point" aufs /
echo $mount_point $sfs_module
#exit

if [ $? != 0 ]; then 
#Xdialog --title "$self" --msgbox "Внимание! `basename $sfs_file` модуль не удалось отключить.\n$2"  6 0
echo "Внимание! `basename $sfs_file` модуль не удалось отключить.\n$2"  
exit
fi
XRESTART=""
#Xdialog --wrap --title "Отключение SFS модуля" --msgbox "$sfs_module Отключается от файловой системы Puppy,
echo "$sfs_module Отключается от файловой системы Puppy, пожалуйста, подождите..." 
XPID=$!
	#- update ld.conf.so (libraries)
	if [ ! -z "`which ldconfig`" ]; then
	 	if [ -d  "$mount_point/usr/lib" -o -d "$mount_point/usr/local/lib" ]; then
	 		echo "Updating library cache /etc/ld.so.cache..."
	 		ldconfig
	 	fi
	fi
	
	#- update/refesh menus 
#	if [ `find "$mount_point" | grep -ic "desktop$"` -gt 0 ] 
#	then
#		fixmenus
#		jwm -restart
#	fi
	
	#- make new kernel modules available, must still be loaded when needed
	kernel_version="`uname -r`"
	if [  `find "$mount_point/lib/modules/$kernel_version" 2>/dev/null | grep -ic "ko$"` -gt 0 ]; then
		echo "Running depmod...."
		depmod
	fi

	#make new fonts available
	for font_dir in "/usr/X11R6/lib/X11/fonts/TTF" "/usr/share/fonts/default/TTF"
	do
		if [ -d "$mount_point/$font_dir" ]; then
			cd "$font_dir"
			`which mkfontscale` .
			`which mkfontdir` .
		fi
	done

umount "$mount_point" 
if [ $? != 0 ]; then 
    #Xdialog --title "$self" --msgbox "Внимание! `basename $sfs_file` модуль не удалось отключить.\n$2"  6 0
    echo "Внимание! `basename $sfs_file` модуль не удалось отключить."  
    #[ -f /usr/bin/notify-send ] && 	
    notify-send "SFS модуль $sfs_module" "модуль не удалось отключить. Возможно, он используется. Попробуйте перезагрузить X" -i error
    exit
fi

rmdir "$mount_point"
if [ $? != 0 ]; then 
    #Xdialog --title "$self" --msgbox "Внимание! `basename $sfs_file` модуль не удалось отключить.\n$2"  6 0
    echo "Внимание! `basename $sfs_file` модуль не удалось отключить."  
    #[ -f /usr/bin/notify-send ] && 	
    notify-send "SFS модуль $sfs_module" "модуль не удалось отключить. Возможно, он используется..." -i error
    exit
fi

losetup -d `losetup -a |grep $sfs_module |awk -F: '{print $1}'`
if [ $? = 0 ]; then 
    echo "Хорошо! `basename $sfs_file` модуль отключен."  
    #[ -f /usr/bin/notify-send ] && 	
    notify-send "SFS модуль $sfs_module" "успешно отключен" -i info
    #Xdialog --title "$self" --msgbox "Внимание! `basename $sfs_file` модуль не удалось отключить.\n$2"  6 0
    exit
fi
##rm "/usr/local/SFS_Installer/$sfs_module.sfs"
##kill $XPID
#Xdialog --title "$self" --msgbox "Хорошо! `basename $sfs_file` модуль отключен.\n"  6 0

 cat /tmp/SFS_MNT | grep -v "$sfs_file" > /tmp/SFS_MNT1 && \
 rm -f /tmp/SFS_MNT && \
 mv /tmp/SFS_MNT1 /tmp/SFS_MNT 
 
 tsfs=/mnt/..tmpfs."$sfs_module"
 [ -d $tsfs ] && `which sudo` umount $tsfs  && `which sudo` rmdir $tsfs

sfslxp || fixmenus

# dim-kut ----
sfs_path=$(dirname "$1")
parent_dir2=${sfs_path:0:1}
FULL_PATH="$1"

if [ $parent_dir2 == '.' ] # если путь начинается с ./
then
pwd_path="`pwd`"
sfs_name=`basename "$1"`
FULL_PATH="${pwd_path}/${sfs_name}"
fi
# dim-kut ---+DdShurick add--
if [ -d /usr/local/sfs_event ];then
 if [ "$(ls /usr/local/sfs_event/sfs_scripts | grep ${sfs_module}.sfs)" = "" ]; then 
/usr/local/sfs_event/sfs_remove "$FULL_PATH"
 else
mv -f $HOME/.icewm/menu $HOME/.icewm/menu-previous
sed "s/ok.xpm\" \/usr\/local\/sfs_event\/sfs_scripts\/dlg-${sfs_module}.sfs/error.xpm\" \/usr\/local\/sfs_event\/sfs_scripts\/reload-${sfs_module}.sfs/" $HOME/.icewm/menu-previous > $HOME/.icewm/menu
 fi
fi
