#!/bin/sh -e

if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-remove" ] ; then

    #test for live system, exit if found  (check used below)
    LIVE_CHECK=$(df -T / |tail -n1 |awk '{print $2}')
    
    #first part for deciding whether to run update-grub or not
    OLD_PRETTY_NAME="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian)"

     #add a symlink to mx-version called antix-version, because some apps look for info from antix-version
    if [ -e /etc/mx-version ]; then
        if [ ! -e /etc/antix-version ]; then
        ln -frs /etc/mx-version /etc/antix-version
        fi
        if [ "$(readlink /etc/antix-version)" = "/etc/mx-version" ]; then
        ln -frs /etc/mx-version /etc/antix-version
        fi
    fi

    #add a sources.list if one doesn't exist
    if [ ! -e /etc/apt/sources.list ]; then
        touch /etc/apt/sources.list
        echo "#this file is empty by default.  Sources are under /etc/apt/sources.list.d" >/etc/apt/sources.list
    fi

    #make /etc/machine-id from /var/lib/dbus/machine-id if not present
    if [ ! -e /etc/machine-id ]; then
        if [ -e /var/lib/dbus/machine-id ]; then
            cp /var/lib/dbus/machine-id /etc/machine-id
        fi
    fi

#update mx-version to latest for MX23, beta, and RC and later
    if [ -e /etc/mx-version ]; then

    sed -i 's/Libretto/Infinity/' /etc/mx-version
    sed -i "s/MX-23.*_/MX-25_/" /etc/mx-version
    #handle update from beta and rc users
    sed -i s/_beta.*_/_/ /etc/mx-version
    sed -i s/_RC.*_/_/ /etc/mx-version
    sed -i s/_rc.*_/_/ /etc/mx-version
    fi
    
    if [ -e /etc/lsb-release ]; then
    #Handle update from mx23 users
    sed -i 's/Libretto/Infinity/' /etc/lsb-release
    sed -i 's/PRETTY_NAME="MX 23.*"/PRETTY_NAME="MX 25 Infinity"/' /etc/lsb-release
    sed -i 's/DISTRIB_RELEASE=23.*/DISTRIB_RELEASE=25/' /etc/lsb-release
    sed -i 's/DISTRIB_CODENAME="Libretto"/DISTRIB_CODENAME="Infinity"/' /etc/lsb-release
    sed -i 's/DISTRIB_DESCRIPTION="MX 23.*"/DISTRIB_DESCRIPTION="MX 25 Infinity"/' /etc/lsb-release
    #mx25.X
    #sed -i 's/PRETTY_NAME="MX 25.* Fred"/PRETTY_NAME="MX 25.1 Fred"/' /etc/lsb-release
    #sed -i 's/DISTRIB_RELEASE=25.*/DISTRIB_RELEASE=25.1/' /etc/lsb-release
    #sed -i 's/DISTRIB_DESCRIPTION="MX 25.* Fred"/DISTRIB_DESCRIPTION="MX 25.1 Fred"/' /etc/lsb-release
    fi
    
    #migrate /etc/initrd-release to /etc/initrd_release
    if [ -e /etc/initrd-release ]; then
    	cp /etc/initrd-release /etc/initrd_release
    	rm /etc/initrd-release
    fi
    #update /etc/initrd_release
    #work if MX is in Name field
    if [ -e /etc/initrd_release ]; then
    #first reset /etc/initrd-release files that were overwritten by mx so-template
    	if [ -n "$(grep 'NAME="MX"' /etc/initrd_release)" ]; then
           #next release add string changes from 23 to next version
           		sed -i -E s/'VERSION="23(\.[0-9]+)?([^()]*)\(Libretto\)"'/'VERSION="25\2(Infinity)"'/g /etc/initrd_release
           		sed -i -E s/'PRETTY_NAME="MX 23(\.[0-9]+)?([^()]*)\(Libretto\)"'/'PRETTY_NAME="MX 25\2(Infinity)"'/g /etc/initrd_release
				sed -i s/'VERSION_ID="23.*_"'/'VERSION_ID="25_"'/ /etc/initrd_release
         fi
	fi

	#second part of update-grub setup
	NEW_PRETTY_NAME="$(unset PRETTY_NAME; (. /etc/lsb-release; echo ${PRETTY_NAME:?}) 2>/dev/null || echo Debian)"
	
	#only update on non-live systems and when there is an actual change 
	if [ "$LIVE_CHECK" != "overlay" ] && [ "$NEW_PRETTY_NAME" != "$OLD_PRETTY_NAME" ]; then
		if [ -e /boot/grub/grub.cfg ]; then
			exec update-grub
		fi
	fi

    #update installed /etc/issue
    #check for live system
    #check for existence so that it doesn't do anything during initial build process
    if [ -e /etc/issue ]; then
        if [ "$LIVE_CHECK" = "overlay" ] || [ "$LIVE_CHECK" = "aufs" ]; then
            echo "running live, no change to /etc/issue"
        else
            #copy from /usr/share/antiX
            #only if it looks like the antiX/mx live issue file
            CHECK=$(sed '/cli-installer/!d' /etc/issue)
            if [ -n "$CHECK" ]; then
                cp /usr/share/antiX/issue /etc/issue
            fi
        fi
    fi

    ##add vmd to /etc/initramfs-tools/modules if its not already there
    VMD_CHECK=$(sed '/\<vmd\>/!d' /etc/initramfs-tools/modules)
    if [ ! -n "$VMD_CHECK" ]; then
        echo "adding vmd modules to /etc/initramfs-tools/modules"
        echo "vmd" >> /etc/initramfs-tools/modules
    fi

    #reconfigure debconf with DEBIAN_FRONTEND to Gnome for graphical dpkg use when X available
    #use debconf-kde-helper with KDE
    #will default back to dialog if X not available
    #on default MX KDE iso, check for debconf-kde-helper
    if [ ! -e /etc/mxsystem_frontend.chk ]; then
        if dpkg -l | grep -q debconf-kde-helper; then
            echo 'debconf debconf/frontend select Kde'   | debconf-set-selections
        else
            echo 'debconf debconf/frontend select Gnome' | debconf-set-selections
        fi
        touch /etc/mxsystem_frontend.chk
    fi

     #add legacy libsane folders

    if [ ! -e /lib/sane ]; then
        mkdir -p /usr/lib/sane
    fi

    if [ "$(dpkg --print-architecture)" = "amd64" ]; then
        if [ ! -e /usr/lib64/sane ]; then
        mkdir -p /usr/lib64/sane
        fi
    fi

    if [ -e "/usr/share/pixmaps/ndisgtk.svg" ] && [ -e "/usr/share/pixmaps/ndisgtk.png.png" ]; then
        cp /usr/share/pixmaps/ndisgtk.svg /usr/share/icons/hicolor/scalable/apps/ndisgtk.svg
        cp /usr/share/pixmaps/ndisgtk.png.png /usr/share/icons/hicolor/48x48/apps/ndisgtk.png.png
    fi

    if [ -e "/usr/share/pixmaps/gnome-ppp.png" ]; then
        cp /usr/share/pixmaps/gnome-ppp.png /usr/share/icons/hicolor/48x48/apps/gnome-ppp.png
    fi

    if [ -e "/usr/share/pixmaps/pppoeconf.png" ]; then
        cp /usr/share/pixmaps/pppoeconf.png /usr/share/icons/hicolor/48x48/apps/pppoeconf.png
    fi

    #revert previous /etc/xdg/autostart/at-spi-dbus-bus.desktop "fix", now takes place in /etc/X11/Xsession.d/98-at-spi
    if [ -e /etc/xdg/autostart/zz-at-spi-dbus-bus.desktop ]; then
    	cp /etc/xdg/autostart/zz-at-spi-dbus-bus.desktop /etc/xdg/autostart/at-spi-dbus-bus.desktop
        rm /etc/xdg/autostart/zz-at-spi-dbus-bus.desktop
    fi

    #update 98vboxadd_xclient
    if [ -e /etc/X11/Xsession.d/98vboxadd-xclient ];then
        cp /usr/share/mx-system/Xsession.d/98vboxadd-xclient /etc/X11/Xsession.d/98vboxadd-xclient
    fi

    # divert gtk2-engines themes
    for F in \
        /usr/share/themes/Clearlooks/gtk-2.0/gtkrc  \
        /usr/share/themes/Crux/gtk-2.0/gtkrc        \
        /usr/share/themes/Industrial/gtk-2.0/gtkrc  \
        /usr/share/themes/Mist/gtk-2.0/gtkrc        \
        /usr/share/themes/Redmond/gtk-2.0/gtkrc     \
        /usr/share/themes/ThinIce/gtk-2.0/gtkrc
    do
      dpkg-divert --quiet --package mx-system --rename \
                  --divert $F.dpkg-dist --add $F  || :
    done
    
	#remove old keys

	keys="1F5C2E815EC294453B15233CD3F985C51A77B3E9
	630239CC130E1A7FD81A27B140976EAF437D05B5
	64D15ADAFA81B2C5619B32972EBC26B60C5A2783
	C5986B4F1257FFA86632CBA746181433FBB75451
	1D7FC53F80F852C188F4ED0B07DC563D1F41B907
	64C36120DA8D91E7378BE79F3916C431F80994F6
	CD5A97769F6EF4D9EBCD8F92033431536A423791
	6947BD50026AE8C89AC409FD390EC3FF927CCC73
	B80BCDE319EE84E0A353E7CFFEC820F4B8C0755A
	AF45122801DAD61329EF9570DCF9F87B6DFBCBAE
	A949B28F7A9680636CA336DE81D4980FA1704726
	70C4F178C4AC36D29A3B52F03EFF4F272FB2CD80
	7B0FAB3A13B907435925D9C954422A4B98AB5139
	8526E45FAF83DE2F634C1909F9A2F76A9D1A0061
	565F67CD02BA29CF4F5D5405E6AD81A8B9FBE3CE
	EA29BBBE6A4195E6EF3CE709A40E385D15B0B570
	DB3DFC6C82D3D79B4590F2760393B8638C00FC18
	5929601B7779956E0117749A515F1784FFF06A93
	255F023751CFAA0F3B78F548F4EA6AF93465FC9B
	48A9B68696FFFD91ED9C5AD88982541DFD08FE04
	5C686B8FD30FA0E6AB7E6DAEAAFF4A5B336064B5
	3289E2A97822F308E66030F07DCAC92F09F8ECEF
	D95E9BC93D6342FA4843805E0CA321713B07EE13
	2920868DC0F8016AA35AA0F8E429CCF86CE33D20
	C8CF351360C3739451788AE581E77EAF14E225A0
"

	#check presense of old key


	if [ -e /etc/apt/trusted.gpg ]; then
		if [ -n "$(apt-key --keyring /etc/apt/trusted.gpg list 2>/dev/null | grep '6302 39CC 130E 1A7F D81A  27B1 4097 6EAF 437D 05B5')" ]; then
			apt-key --keyring /etc/apt/trusted.gpg del $keys 2>/dev/null 1>/dev/null		
		fi
	fi

	#remove bogus imagemagick display desktop file
	if [ -e /usr/share/applications/display-im6.desktop ]; then
		rm /usr/share/applications/display-im6.desktop
	fi
	#remove old diverton imagemagick desktop file, if it exists
    if [ -n "$(dpkg-divert --listpackage /usr/share/applications/display-im6.q16.desktop)" ]; then
        dpkg-divert --quiet --package mx-system --rename \
                    --divert /usr/share/applications/display-im6.q16.desktop.dpkg-dist --remove /usr/share/applications/display-im6.q16.desktop
    fi
    
    #fix permissions on sysctl.d .conf files provided by mx-system
    if [ -x "/etc/sysctl.d/99-swappiness_mx.conf" ]; then
    	chmod a-x /etc/sysctl.d/99-swappiness_mx.conf
    fi
    if [ -x "/etc/sysctl.d/99-vm-dirtybytes_mx.conf" ]; then
    	chmod a-x /etc/sysctl.d/99-vm-dirtybytes_mx.conf
    fi
fi

#DEBHELPER#
