#!/bin/bash

function error {
  echo -e "\e[91m$1\e[39m"
  exit 1
}

DIRECTORY="$(readlink -f "$(dirname "$0")")"

if [ -z "$(dpkg-query -W --showformat='${Status}\n' yad 2>/dev/null | grep "install ok installed")" ];then
  echo -n "YAD is required but not installed. Install now? [Y/n] "
  read answer
  if [ "$answer" == n ];then
    error "User declined."
  fi
  if [ -f /usr/bin/apt ];then
    sudo apt install -y yad
  elif [ -f /usr/bin/pacman ];then
    sudo pacman -S yad
  fi
fi

#remove annoying YAD icon browser launcher
sudo rm -f /usr/share/applications/yad-icon-browser.desktop

echo "Creating menu button..."
mkdir -p ~/.local/share/applications
echo "[Desktop Entry]
Name=Pi Apps
Comment=Raspberry Pi App Store for open source projects
Exec=${DIRECTORY}/gui
Icon=${DIRECTORY}/icons/logo.png
Terminal=false
Type=Application
Categories=Utility;" > ~/.local/share/applications/pi-apps.desktop

echo "Adding Desktop shortcut..."
cp -f ${HOME}/.local/share/applications/pi-apps.desktop ${HOME}/Desktop/pi-apps.desktop

echo "Creating Settings menu button..."
echo "[Desktop Entry]
Name=Pi Apps Settings
Comment=Configure Pi-Apps or create an App
Exec=${DIRECTORY}/settings
Icon=${DIRECTORY}/icons/logo.png
Terminal=false
Type=Application
Categories=Settings;" > ~/.local/share/applications/pi-apps-settings.desktop

echo "Creating autostarted updater..."
mkdir -p ~/.config/autostart
echo "[Desktop Entry]
Name=Pi Apps Updater
Exec=${DIRECTORY}/updater onboot
Icon=${DIRECTORY}/icons/logo.png
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
Hidden=false
NoDisplay=false" > ~/.config/autostart/pi-apps-updater.desktop

mkdir -p "${DIRECTORY}/data"
cd "${DIRECTORY}/data"
mkdir -p installed-packages preload settings status update-status
cd $HOME

#hide template file by default
echo "template" > "${DIRECTORY}/data/hidelist"

#hide duplicates if running in twisteros
if [ -f /usr/local/bin/twistver ];then
  echo "BalenaEtcher
Chromium Media Edition
CommanderPi
Box86
Discord
piKiss
Retropie
Scrcpy
Windows 10 Theme
Chromium Widevine
Back to Chromium v78" >> "${DIRECTORY}/data/hidelist"
fi

echo "Creating settings if they don"\'"t exist..."
"${DIRECTORY}/settings" refresh

echo "Preloading app list..."
"${DIRECTORY}/preload" &>/dev/null

echo "Installation complete."