wilde@1139: #-*-sh-*-
wilde@1150: 
wilde@1150: ###INCLUDE:linux-installer-uninstall.l10n-de
wilde@1150: 
wilde@1139: rm_empty_dirs()
wilde@1139: {
wilde@1139:   # Args: $1 - DIRECTORY
wilde@1139:   #
wilde@1139:   # Recursively remove DIRECTORY and all it _parent_ directories as
wilde@1139:   # long as they are empty.
wilde@1139:   local directory="$1"
wilde@1139:   while [ -d "$directory" -a -z "$(ls 2>/dev/null -A "$directory")" ] ; do
wilde@1139:     getxt "Deleting empty directory '%s' ...\n" "$directory"
wilde@1139:     rmdir "$directory"
wilde@1139:     directory=`dirname "$directory"`
wilde@1139:   done
wilde@1139: }
wilde@1139: 
wilde@1139: rm_files()
wilde@1139: {
wilde@1139:   for file in "$@" ; do
wilde@1139:     if [ -e "$file" ] ; then
wilde@1139:         getxt "Deleting '%s' ...\n" "$file"
wilde@1139:         rm "$file"
wilde@1139:     fi
wilde@1139:   done
wilde@1139: }
wilde@1139: 
wilde@1139: remove_cronjob()
wilde@1139: {
wilde@1139:   setup_cronjob deinstall
wilde@1139: }
wilde@1139: 
andre@1178: deinstall_certs_and_config()
wilde@1139: {
andre@1176:   local cinst="${oldinstcfg[PREFIX]}/bin/trustbridge-certificate-installer"
wilde@1139:   local certlist=`ls 2>/dev/null -1  ${instdata_path}/list-installed.txt`
wilde@1139: 
wilde@1139:   getxt "Uninstalling certificates ...\n"
wilde@1139: 
andre@1178:   if [ -f "$certlist" ] ; then
wilde@1139:       getxt "Using certificate list '%s'.\n" "$certlist"
wilde@1139:       if [ -x "$cinst" ] ; then
wilde@1139:           "$cinst" "list=$certlist" "choices=uninstall"
wilde@1139:       else
wilde@1139:         getxt >&2 "WARNING: can't execute %s for certificate deinstallation.\n" "$cinst"
wilde@1139:       fi
andre@1178:       rm_files "$certlist"
wilde@1139:   else
wilde@1139:     getxt "No certificate list found.  Nothing to do.\n"
wilde@1139:   fi
andre@1178: 
andre@1206:   rm_files "${CFGPATH}/TrustBridge.ini"
andre@1206:   rm_empty_dirs "${CFGPATH}"
wilde@1139: }
wilde@1139: 
wilde@1139: deinstall_etc()
wilde@1139: {
wilde@1139:   getxt "Removing cron job ...\n"
wilde@1139:   remove_cronjob
wilde@1139: 
andre@1178:   getxt "Removing certificate lists from: %s:\n" "$instdata_path"
andre@1178:   rm_files "$instdata_path"/list-2*.txt
andre@1178: 
andre@1206:   local tbcfg_files=( "${CFGPATH}/trustbridge-tray-starter.cfg"
wilde@1139:                       "$instcfg_file" )
wilde@1139: 
andre@1178:   getxt "Removing configuration files:\n"
andre@1178:   rm_files "${tbcfg_files[@]}"
andre@1178:   rm_empty_dirs "$instcfg_path"
andre@1206:   rm_empty_dirs "${CFGPATH}"
wilde@1139: 
wilde@1139:   getxt "Removing PID file from: %s:\n" "$instdata_path"
wilde@1139:   rm_files "$instdata_path"/*.pid
wilde@1139:   rm_empty_dirs "$instdata_path"
wilde@1139: 
wilde@1139:   getxt "Removing TrustBridge from autostart\n"
wilde@1139:   rm_files "${autostart_path}/trustbridge.desktop"
wilde@1139:   update-desktop-database 2>&1 || true
wilde@1139: 
wilde@1139:   getxt "Removing TrustBridge from start menu\n"
wilde@1139:   rm_files "${startmenu_path}/trustbridge.desktop"
wilde@1139: }
wilde@1139: 
wilde@1139: deinstall()
wilde@1139: {
wilde@1139:   if [ "${oldinstcfg[PREFIX]}" ] ; then
wilde@1139:       getxt "Really deinstall TrustBridge from '%s'? [y/n]\n" "${oldinstcfg[PREFIX]}"
wilde@1139:       yorn || exit 0
andre@1178:       local certlist=`ls 2>/dev/null -1  ${instdata_path}/list-installed.txt`
andre@1178:       if [ -f "$certlist" ] ; then
andre@1178:         getxt "Do you also want to remove the certificates installed by TrustBridge? [y/n]\n"
andre@1178:         yorn && deinstall_certs_and_config
andre@1178:       fi
wilde@1139:       local deinstdir="${oldinstcfg[PREFIX]}/bin"
wilde@1139:       getxt "Deinstalling from '%s'.\n" "${oldinstcfg[PREFIX]}"
wilde@1139:       for file in $BINNAMES ; do
wilde@1139:         local path="${deinstdir}/$file"
wilde@1139:         getxt "Deleting '%s' ...\n" "$path"
wilde@1139:         rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
wilde@1139:       done
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139: 
wilde@1139:       # images
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/doc/trustbridge/_images"
wilde@1139:       for file in $HELPNAMES_IMG; do
wilde@1139:         local path="${deinstdir}/$file"
wilde@1139:         if [ -f "$path" ]; then
wilde@1139:           getxt "Deleting '%s' ...\n" "$path"
wilde@1139:           rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
wilde@1139:         fi
wilde@1139:       done
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139: 
wilde@1139:       # Javascript sources
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/doc/trustbridge/_sources"
wilde@1139:       for file in $HELPNAMES_SOURCES; do
wilde@1139:         local path="${deinstdir}/$file"
wilde@1139:         if [ -f "$path" ]; then
wilde@1139:           getxt "Deleting '%s' ...\n" "$path"
wilde@1139:           rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
wilde@1139:         fi
wilde@1139:       done
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139: 
wilde@1139:       # Static files
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/doc/trustbridge/_static"
wilde@1139:       for file in $HELPNAMES_STATIC; do
wilde@1139:         local path="${deinstdir}/$file"
wilde@1139:         if [ -f "$path" ]; then
wilde@1139:           getxt "Deleting '%s' ...\n" "$path"
wilde@1139:           rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
wilde@1139:         fi
wilde@1139:       done
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139: 
andre@1249:       # Licenses
andre@1249:       deinstdir="${oldinstcfg[PREFIX]}/share/doc/trustbridge/licenses"
andre@1249:       for file in $LICENSENAMES; do
andre@1249:         local path="${deinstdir}/$file"
andre@1249:         if [ -f "$path" ]; then
andre@1249:           getxt "Deleting '%s' ...\n" "$path"
andre@1249:           rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
andre@1249:         fi
andre@1249:       done
andre@1249:       rm_empty_dirs "$deinstdir"
andre@1249: 
wilde@1139:       # The actual html
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/doc/trustbridge"
wilde@1139:       for file in $HELPNAMES; do
wilde@1139:         local path="${deinstdir}/$file"
wilde@1139:         if [ -f "$path" ]; then
wilde@1139:           getxt "Deleting '%s' ...\n" "$path"
wilde@1139:           rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
wilde@1139:         fi
wilde@1139:       done
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/pixmaps/trustbridge"
wilde@1139:       getxt "Deinstalling from '%s'.\n" "${oldinstcfg[PREFIX]}"
wilde@1139:       for file in $ICONNAME; do
wilde@1139:         local path="${deinstdir}/$file"
wilde@1139:         getxt "Deleting '%s' ...\n" "$path"
wilde@1139:         rm "$path" || getxt >&2 "WARNING: Could not delete: '%s'!\n" "$path"
wilde@1139:       done
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/pixmaps/trustbridge"
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share/pixmaps"
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139:       deinstdir="${oldinstcfg[PREFIX]}/share"
wilde@1139:       rm_empty_dirs "$deinstdir"
wilde@1139:       deinstall_etc
wilde@1139:       getxt "Deinstallation finished.\n"
wilde@1139:   else
wilde@1139:     getxt "No current installation found!  No harm done.\n"
wilde@1139:   fi
wilde@1139: }