#! /bin/sh
# 
#SyAM Uninstaller
#
#uninstall the product from the system
#


#---------------
#function load language
#
# Loads a language based on the locale selected at install time
#

load_language()
{
  case "$insGen_locale" in
    "en")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_en[$i]}
        done
      ;;
    "en_GB")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_en_GB[$i]}
        done
      ;;
    "de")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_de[$i]}
        done
      ;;
    "fr")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_fr[$i]}
        done
      ;;
    "fr_CA")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_fr_CA[$i]}
        done
      ;;
    "es")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_es[$i]}
        done
      ;;
    "es_AR")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_es_AR[$i]}
        done
      ;;
    "pt")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_pt[$i]}
        done
      ;;
    "pt_BR")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_pt_BR[$i]}
        done
      ;;
    "jp")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_jp[$i]}
        done
      ;;
    "ru")
        for (( i = 0; i <= 7; i++ ))
        do
          insTrans_def[$i]=${insTrans_ru[$i]}
        done
      ;;
  esac
    
}

#---------------
#define uninstaller language translations

insTrans_def[0]="" #depending on the install language, arrays below are loaded into this one for use

insTrans_en[0]="done"
insTrans_en[1]="are you sure you want to uninstall [1:yes 2:no]? "
insTrans_en[2]="shutting down services"
insTrans_en[3]="removing services from system service list"
insTrans_en[4]="removing"
insTrans_en[5]="uninstall complete"
insTrans_en[6]="uninstalling product"
insTrans_en[7]="uninstall aborted"
                                                          
insTrans_en_GB[0]="done"
insTrans_en_GB[1]="are you sure you want to uninstall [1:yes 2:no]? "
insTrans_en_GB[2]="shutting down services"
insTrans_en_GB[3]="removing services from system service list"
insTrans_en_GB[4]="removing"
insTrans_en_GB[5]="uninstall complete"
insTrans_en_GB[6]="uninstalling product"
insTrans_en_GB[7]="uninstall aborted"

insTrans_de[0]="Erledigt"
insTrans_de[1]="Wollen Sie wirklich deinstallieren [1:ja 2:nein]? "
insTrans_de[2]="Shut down Services"
insTrans_de[3]="Services von der Systemserviceliste entfernen"
insTrans_de[4]="Entfernen"
insTrans_de[5]="Deinstallation abgeschlossen"
insTrans_de[6]="uninstalling product"
insTrans_de[7]="uninstall aborted"                                               

insTrans_fr[0]="terminÃ©"
insTrans_fr[1]="voulez-vous vraiment dÃ©sinstaller [1:oui 2:non]?"
insTrans_fr[2]="arrÃªt de services"
insTrans_fr[3]="suppression d'Ã©lÃ©ments dans la liste des services"
insTrans_fr[4]="suppression de"
insTrans_fr[5]="dÃ©sinstallation terminÃ©e"
insTrans_fr[6]="dÃ©sinstallÃ© le produit"
insTrans_fr[7]="dÃ©sinstallÃ© a avortÃ©"

insTrans_fr_CA[0]="terminÃ©"
insTrans_fr_CA[1]="voulez-vous vraiment dÃ©sinstaller [1:oui 2:non]?"
insTrans_fr_CA[2]="arrÃªt de services"
insTrans_fr_CA[3]="suppression d'Ã©lÃ©ments dans la liste des services"
insTrans_fr_CA[4]="suppression de"
insTrans_fr_CA[5]="dÃ©sinstallation terminÃ©e"
insTrans_fr_CA[6]="dÃ©sinstallÃ© le produit"
insTrans_fr_CA[7]="dÃ©sinstallÃ© a avortÃ©"

insTrans_es[0]="Listo"
insTrans_es[1]="Esta seguro de que desea desinstalar [1:sÃ­ 2:no] "
insTrans_es[2]="apagando servicios"
insTrans_es[3]="eliminando servicios de la lista de servicios del sistema"
insTrans_es[4]="eliminando"
insTrans_es[5]="desinstalaciÃ³n concluida"
insTrans_es[6]="desinstalando producto"
insTrans_es[7]="desinstalaciÃ³n abortada"
                                                                         
insTrans_es_AR[0]="Listo"
insTrans_es_AR[1]="Esta seguro de que desea desinstalar [1:sÃ­ 2:no] "
insTrans_es_AR[2]="apagando servicios"
insTrans_es_AR[3]="eliminando servicios de la lista de servicios del sistema"
insTrans_es_AR[4]="eliminando"
insTrans_es_AR[5]="DesinstalaciÃ³n concluida"
insTrans_es_AR[6]="desinstalando producto"
insTrans_es_AR[7]="desinstalaciÃ³n abortada"
                                                                            
insTrans_pt[0]="finalizado"
insTrans_pt[1]="tem certeza que deseja desinstalar o programa [1:sim 2:nÃ£o]? "
insTrans_pt[2]="parando os serviÃ§os"
insTrans_pt[3]="removendo os serviÃ§os da lista de serviÃ§os de sistema"
insTrans_pt[4]="removendo"
insTrans_pt[5]="desinstalaÃ§Ã£o completa"
insTrans_pt[6]="produto desinstalado"
insTrans_pt[7]="desinstalaÃ§Ã£o interrompida"
                                                                     
insTrans_pt_BR[0]="finalizado"
insTrans_pt_BR[1]="tem certeza que deseja desinstalar o programa [1:sim 2:nÃ£o]? "
insTrans_pt_BR[2]="parando os serviÃ§os"
insTrans_pt_BR[3]="removendo os serviÃ§os da lista de serviÃ§os de sistema"
insTrans_pt_BR[4]="removendo"
insTrans_pt_BR[5]="desinstalaÃ§Ã£o completa"
insTrans_pt_BR[6]="produto desinstalado"
insTrans_pt_BR[7]="desinstalaÃ§Ã£o interrompida"

insTrans_jp[0]="終了"
insTrans_jp[1]="アンインストールを行ってもよろしいですか。[1:はい 2:いいえ]?"
insTrans_jp[2]="サービスを終了します。"
insTrans_jp[3]="システム サービス リストからサービスを消去しています。"
insTrans_jp[4]="消去中"
insTrans_jp[5]="アンインストール完了"
insTrans_jp[6]="製品をアンインストール中"
insTrans_jp[7]="アンインストールが中断されました。"
                                          
insTrans_ru[0]="процесс окончен"
insTrans_ru[1]="подтвердите ваши намерения удалить программу [1:да 2:нет]?"
insTrans_ru[2]="идет остановка демон-процессов"
insTrans_ru[3]="идет удаление демон-процессов"
insTrans_ru[4]="идет удаление файлов программы"
insTrans_ru[5]="деинсталляция окончена"
insTrans_ru[6]="идет процесс деинсталляции"
insTrans_ru[7]="деинсталляция не удалась"
                                                                          
#---------------                                                                     

remove_service()
{
	serv=$1
	remsrv_err=0
	
	#chkconfig is the redhat/suse way of adding runlevels
	chkconfig --del $serv > /dev/null 2> /dev/null
  if [ "$?" != "0" ]; then #simply calling the command didn't work...
  	if [ -x "/sbin/chkconfig" ]; then	#...check for non-path existance of chkconfig
	    /sbin/chkconfig --del $serv > /dev/null 2> /dev/null
	    if [ "$?" != "0" ]; then
				remsrv_err=1
	    fi
	  else
	  	remsrv_err=1
	  fi
	fi
	
	#if chkconfig worked, break out of this function
	if [ $remsrv_err == 0 ]; then
		return
	fi
	remsrv_err=0 #reset error check
	
	#rc-update is the gentoo way of adding runlevels  
	rc-update del $serv > /dev/null 2> /dev/null
	if [ "$?" != "0" ]; then
		if [ -x "/sbin/rc-update" ]; then #check for rc-update if it wasn't in the system path
			/sbin/rc-update del $serv > /dev/null 2> /dev/null
			if [ "$?" != "0" ]; then
				remsrv_err=1
	    fi
	  else
	  	remsrv_err=1
	  fi
	fi
	
	#if rc-update worked, break out of this function
	if [ $remsrv_err == 0 ]; then
		return
	fi
	remsrv_err=0 #reset error check
	    
	#update-rc.d is the debian/ubuntu way of adding runlevels
	update-rc.d -f $serv remove > /dev/null 2> /dev/null
	if [ "$?" != "0" ]; then
		if [ -x "/sbin/update-rc.d" ]; then #check for rc-update if it wasn't in the system path
			/sbin/update-rc.d -f $serv remove > /dev/null 2> /dev/null
			if [ "$?" != "0" ]; then
				remsrv_err=1
	    fi
	  else
	  	remsrv_err=1
	  fi
	fi

}

#---------------

insGen_locale="@@@locale@@@"

load_language "$insGen_locale" #invokes the 'load_language' function

#confirm uninstall
echo -n "${insTrans_def[1]}" #are you sure you want to uninstall [1:yes 2:no]? 
read ans
if [ "$ans" = "1" ]; then
  echo "${insTrans_def[6]}..." #uninstalling product
else
  echo "${insTrans_def[7]}." #uninstall aborted
  exit
fi

#stop services
echo -n "${insTrans_def[2]}... " #shutting down services
/etc/init.d/smad stop > /dev/null 2> /dev/null
/etc/init.d/smwd stop > /dev/null 2> /dev/null
/etc/init.d/smcd stop > /dev/null 2> /dev/null
/etc/init.d/smad_remote_console stop > /dev/null 2> /dev/null
echo -e "\033[1;32m${insTrans_def[0]}\033[0m" #done

#remove daemons from service list
echo -n "${insTrans_def[3]}... " #removing services from system service list

remove_service "smad"
remove_service "smad_remote_console"
remove_service "smwd"
remove_service "smcd"

echo -e "\033[1;32m${insTrans_def[0]}\033[0m" #done

#remove the install folder
dir=@@@install_path@@@
echo -n "${insTrans_def[4]} $dir... " #removing $dir
rm -rf $dir
echo -e "\033[1;32m${insTrans_def[0]}\033[0m" #done

rm -f /etc/init.d/smad > /dev/null 2> /dev/null
rm -f /etc/init.d/smad_remote_console > /dev/null 2> /dev/null
rm -f /etc/init.d/smwd > /dev/null 2> /dev/null
rm -f /etc/init.d/smcd > /dev/null 2> /dev/null
rm -f /etc/pam.d/syam > /dev/null 2> /dev/null

echo -e "\033[1;34m${insTrans_def[5]}\033[0m" #uninstall complete
echo ""
