#!/bin/bash

# This is, in general, not intented to be run manually.
# So, silently exit if desktop file is not provided.
[ -z $1 ] && {
    # echo "No argument (.desktop file name)."
    exit 1
}

echo $LANG | grep "ru_RU" ; codeRu=$?
if [ $codeRu -eq 0 ]
then text_error="Произошла ошибка, не удается спрятать это приложение."
    title_fin="Приложение спрятано"
    text_hided="Отменить действие можно в программе Настройки - Приложения."
else text_error="Error happened, cannot hide this app."
    title_fin="Application hided"
    text_hided="To revert go to Settings - Applications."
fi

app=$1

[ -f $app ] || {
    # echo "No .desktop file"
    # zenity error message
    zenity --error --text="$text_error"
    exit 2
}

sysPath="/usr/share/applications/"
homePath="$HOME/.local/share/applications"
desktopName=`echo $app | awk -F\/ '{print $NF}'`

echo $app | grep "$homePath" ; codeHome=$?
if [ $codeHome -eq 0 ]
then # User app
    # Back up
    mv -f $app $app.bak
    cat $app.bak | sed "s/NoDisplay=false/NoDisplay=true/" > $app
    grep "NoDisplay=true" $app || {
        # Add NoDisplay if missed
        cat $app.bak | sed 's/\[Desktop\ Entry\]/\[Desktop\ Entry\]\nNoDisplay=true/' > $app
}
else # System app
    cat $app | sed "s/NoDisplay=false/NoDisplay=true/" > $homePath/$desktopName
    grep "NoDisplay=true" $homePath/$desktopName || {
        # Add NoDisplay if missed
        cat $app | sed 's/\[Desktop\ Entry\]/\[Desktop\ Entry\]\nNoDisplay=true/' > $homePath/$desktopName
}

fi

update-desktop-database $homePath

zenity --info \
    --title="$title_fin" \
    --text="$text_hided" \

exit 0