# HG changeset patch # User Sascha Wilde # Date 1404322336 -7200 # Node ID 3777482dc306c9358d99c8c60ab1f7d973ba6e4b # Parent ce3e33e66a177c8a635464cec2808e54a5c64f25# Parent b0929968562a82f27384e63561d4c7af765bcdf8 Merged diff -r b0929968562a -r 3777482dc306 packaging/linux-installer.inc.in --- a/packaging/linux-installer.inc.in Wed Jul 02 18:35:30 2014 +0200 +++ b/packaging/linux-installer.inc.in Wed Jul 02 19:32:16 2014 +0200 @@ -4,16 +4,17 @@ ME=`basename "$0"` DEFAULT_PREFIX="$HOME/TrustBridge" SYSDEFAULT_PREFIX="/usr/local" -CFGPATH="${XDG_DATA_HOME:-$HOME/.local/share}/BSI/TrustBridge" +CFGPATH="${XDG_CONFIG_HOME:-$HOME/.config}/BSI" +DATAPATH="${XDG_DATA_HOME:-$HOME/.local/share}/BSI/TrustBridge" SYSCFGPATH="/etc/TrustBridge" -INSTCFGNAME="installation.cfg" +INSTCFGNAME="TrustBridge-inst.cfg" FORCE=0 SYSINST=0 DEINSTALL=0 BINNAMES="###BINNAMES###" declare -A instcfg oldinstcfg -declare inst_default_prefix instcfg_file +declare inst_default_prefix instdata_path instcfg_path instcfg_file instcfg=( [TIMESTMP]=`date -u +%Y%m%d%H%M%S` [VERSION]='@PROJECT_VERSION@' @@ -133,11 +134,15 @@ { if [ $SYSINST -eq 1 ] ; then inst_default_prefix="$SYSDEFAULT_PREFIX" - instcfg_file="${SYSCFGPATH}/${INSTCFGNAME}" + instcfg_path="${SYSCFGPATH}" + # TODO: where is the system wide installation data path? + instdata_path="${SYSCFGPATH}" else inst_default_prefix="$DEFAULT_PREFIX" - instcfg_file="${CFGPATH}/${INSTCFGNAME}" + instcfg_path="${CFGPATH}" + instdata_path="${DATAPATH}" fi + instcfg_file="${instcfg_path}/${INSTCFGNAME}" } write_instcfg() @@ -166,11 +171,31 @@ fi } +deinstall_certs() +{ + local cinst="${oldinstcfg[PREFIX]}/bin/cinst" + local certlist=`ls -1 ${instdata_path}/list-*.txt | sort -nr | head -n 1` + + echo "Uninstalling certificates ..." + + if [ "$certlist" ] ; then + echo "Using certificate list '$certlist'." + if [ -x "$cinst" ] ; then + "$cinst" "list=$certlist" "choices=uninstall" + else + echo >&2 "WARNING: can't execute $cinst for certificate deinstallation." + fi + else + echo "No certificate list found. Nothing to do." + fi +} + deinstall() { if [ "${oldinstcfg[PREFIX]}" ] ; then echo "Really deinstall TrustBridge from '${oldinstcfg[PREFIX]}'?" yorn || exit 0 + deinstall_certs local deinstdir="${oldinstcfg[PREFIX]}/bin" echo "Deinstalling from '${oldinstcfg[PREFIX]}'." for file in $BINNAMES ; do