# old version (without -$pkgrel): ${1%%-*}
# new version (without -$pkgrel): ${2%%-*}

PKGNAME="securlogon"

# arg 1:  the new package version
pre_install() {
    pre_upgrade $@
}

# arg 1:  the new package version
post_install() {
    post_upgrade $@
}

# arg 1:  the new package version
# arg 2:  the old package version
pre_upgrade() {
    true
}

# arg 1:  the new package version
# arg 2:  the old package version
post_upgrade() {
    DESKTOPNAME=$(gettext -d xdg-user-dirs "Desktop")
    mkdir -p /root/"${DESKTOPNAME}"
    cp -a /usr/share/applications/jcsecurlogon.desktop /root/"${DESKTOPNAME}"/ &>/dev/null
    
    NSSDB_DIR="/etc/pki/nssdb"
    install -dm0755 "${NSSDB_DIR}"
    if [[ ! "$(ls -A ${NSSDB_DIR})" ]]; then
	certutil -d "${NSSDB_DIR}" -N --empty-password #(создание базы данных)
    else
	modutil -dbdir "${NSSDB_DIR}" -delete JaCarta -force 2>/dev/null
    fi

    if which systemctl &>/dev/null; then
#	systemctl --quiet enable pcscd.socket &>/dev/null
        systemctl --quiet restart jcsecurlogond.service &>/dev/null
    elif [[ -f /etc/init.d/jcsecurlogond ]]; then
#        /etc/init.d/jcsecurlogond enable &>/dev/null
        /etc/init.d/jcsecurlogond restart &>/dev/null
    fi
    return 0
}

# arg 1:  the old package version
pre_remove() {
    rm -f /etc/sssd/pki/sssd_auth_ca_db.pem
    DESKTOPNAME=$(gettext -d xdg-user-dirs "Desktop")
    rm -f /root/${DESKTOPNAME}/jcsecurlogon.desktop &>/dev/null

    ###################################################
    #   restore configuration files 
    PAM_FILE_CFG=/etc/pam.d/common-auth
    ###################################################
    if [ -f "${PAM_FILE_CFG}.jcsecurlogonbak" ]; then
       mv "${PAM_FILE_CFG}.jcsecurlogonbak" "${PAM_FILE_CFG}"
    elif [ -f "${PAM_FILE_CFG}.bak" ]; then
       mv "${PAM_FILE_CFG}.bak" "${PAM_FILE_CFG}"
    fi

    ####################################################
    #   remove certificates from nssdb
    NSSDB_DIR="/etc/pki/nssdb"
    certutil -d ${NSSDB_DIR} -L | grep -o "Smart Card CA {.*}" | xargs -I {} certutil -d ${NSSDB_DIR} -D -n "{}"

    ###################################################
    #   restore krb5.conf
    KRB_CONF=/etc/krb5.conf
    NEED_RESTART_SSSD=false
    if [ -f "${KRB_CONF}.jcsecurlogonbak" ]; then
        mv -v "${KRB_CONF}.jcsecurlogonbak" "${KRB_CONF}"
        NEED_RESTART_SSSD=true
    fi

    ####################################################
    #   restore sssd.conf
    SSSD_CONF=/etc/sssd/sssd.conf
    if [ -f "${SSSD_CONF}.jcsecurlogonbak" ]; then
        mv -v "${SSSD_CONF}.jcsecurlogonbak" "${SSSD_CONF}"
        NEED_RESTART_SSSD=true
    fi

    ###################################################
    #   restart sssd
    if [ ${NEED_RESTART_SSSD} == true ]; then
	if which systemctl &>/dev/null; then
    	    systemctl --quiet is-active sssd.service &>/dev/null && systemctl --quiet restart sssd.service &>/dev/null
	elif [[ -f /etc/init.d/sssd ]]; then
    	    /etc/init.d/sssd restart &>/dev/null
	fi
    fi

    ###################################################
    #   remove backup files
    rm -f ${KRB_CONF}.jcbackup_*
    rm -f ${SSSD_CONF}.jcbackup_*
    ###################################################
    return 0
}

# arg 1:  the old package version
post_remove() {
    true
}
