File debian.postinst of Package linphone-appimage

#!/bin/bash
# --- Variables ---
TITLE="Linphone AppImage"
# PACKAGEVERSION will be replaced to something like 5.3.0 to allow
# specific download but not really needed if 'latest_app' link points
# to the latest AppImage file
pkgver=PACKAGEVERSION
executable=linphone
executable_tag=appimage
APPIMAGE="https://linphone.org/releases/linux/latest"
APPIMAGE="https://linphone.org/releases/linux/latest_app"
APPIMAGE="https://download.linphone.org/releases/linux/app/Linphone-${pkgver}.AppImage"
APPIMAGE="https://download.linphone.org/releases/linux/app/Linphone-6.0.1-CallEdition-x86_64.AppImage"
menuFileNameMinimized="${executable}-${executable_tag}-minimized.desktop"
# --- End variables ---
# Download Linphone-Desktop AppImage file to the correct location
echo "Closing ${executable}.AppImage ..."
pkill AppRun.wrapped
echo "wait a few seconds to terminate ${executable}.AppImage ..."
sleep 5s
wget -O /opt/appimages/${executable}.AppImage "${APPIMAGE}"
chmod 755 /opt/appimages/${executable}.AppImage
# For all users on the system, enable auto-start if they do not have auto-start enabled already:
# Users on the system
USERS=$(awk -F':' '{ print $1 }' /etc/passwd)
# echo USERS=$USERS
for user in $USERS; do
    unset FLAG
    FLAG=-1
    ISHUMAN=-1
    if [ -d "/home/$user/.config/autostart" ]; then
        OWNER=$(stat -c '%U' "/home/$user/.config/autostart")
        GROUPOWNER=$(stat -c '%G' "/home/$user/.config/autostart")
        if [ "$OWNER" != "$user" ]; then
            chown -R $user "/home/$user/.config/autostart"
        fi
        if [ "$GROUPOWNER" != "$user" ]; then
            chown -R :$user "/home/$user/.config/autostart"
        fi
        # echo "$user has .config/autostart folder"
        ISHUMAN=1
    else
        # echo "$user has no autostart folder"
        if [ -d "/home/$user/.local/share" ]; then
            # echo "$user has .local/share folder"
            mkdir -p "/home/$user/.config/autostart"
            # echo "change owner of /home/$user/.config/autostart"
            chown -R $user:$user "/home/$user/.config/autostart"
            ISHUMAN=1
        fi
    fi
    if [ $ISHUMAN -eq 1 ] ; then
        if [ -n "$(find "/home/$user/.config/autostart" -name *${executable}*.desktop -print | xargs )" ]; then
            # echo not empty, 1 equals true
            # echo "Found a file called *${executable}*.desktop"
            FLAG=1
        else
            # echo empty, 0 equals false
            FLAG=0
        fi
        if [ $FLAG -eq 1 ] ; then
            # Remove all previous auto-start .desktop icons
            find "/home/$user/.config/autostart" -name *${executable}*.desktop -type f -exec rm -f {} + 2>/dev/null
        fi
        if [ $FLAG -eq 0 ] || [ $FLAG -eq 1 ] ; then
            # This is a human user.
            # echo "$user is a human user"
            # Create auto-start desktop file.
            # This starts application minimized. (v5)--iconified (v6)--minimized
            echo "[Desktop Entry]" > /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Encoding=UTF-8" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Name=${TITLE}" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Name[fr]=${TITLE}" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Name[sv]=${TITLE}" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Name[cs]=${TITLE}" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "GenericName=SIP Phone" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Comment=A libre SIP client" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Comment[sv]=En fri SIP-telefon-klient" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Comment[fr]=Un libre SIP-client" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Comment[cs]=Libre SIP-klient" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Type=Application" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Icon=${executable}-${executable_tag}" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Terminal=false" >> /home/$user/.config/autostart/$menuFileNameMinimized
            #echo "Exec=/usr/bin/${executable} --minimized --iconified 'call sip-address=%u'" >> /home/$user/.config/autostart/$menuFileNameMinimized
            #echo "Exec=/opt/appimages/${executable}.AppImage --minimized --iconified 'call sip-address=%u'" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Exec=firejail --appimage /opt/appimages/${executable}.AppImage --minimized" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "MimeType=x-scheme-handler/sip;x-scheme-handler/sip-${executable};x-scheme-handler/sip;x-scheme-handler/sips-${executable};x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/${executable}-config;" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "X-PulseAudio-Properties=media.role=phone" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "StartupWMClass=${executable};${executable}" >> /home/$user/.config/autostart/$menuFileNameMinimized
            echo "Categories=Application;Network;Telephony;Internet" >> /home/$user/.config/autostart/$menuFileNameMinimized
            chmod +x "/home/$user/.config/autostart/$menuFileNameMinimized"
            if [ -f /home/$user/.config/autostart/${menuFileNameMinimized} ]; then
                echo "auto-start successfully enabled for user $user"
                # echo "changing ownership of /home/$user/.config/autostart/${menuFileNameMinimized} to $user:$user"
                chown $user:$user /home/$user/.config/autostart/${menuFileNameMinimized}
            fi
        fi
    else
        # echo "$user probably not a real user"
        true
    fi 
done

exit 0
openSUSE Build Service is sponsored by