#!/bin/bash

##
## Config
##

set -e

DIRECTORY="$(dirname "$(dirname "$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )")")"

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

# Wait for apt lock to be released
i=0
while sudo fuser /var/{lib/{dpkg,apt/lists},cache/apt/archives}/lock > /dev/null 2>&1
do
  case $(($i % 4)) in
    0) j="-";;
    1) j="\\";;
    2) j="|";;
    3) j="/";;
  esac
  printf "\r[$j] Waiting for other package managers to finish..."
  sleep 0.5
  ((i+=1))
done
[[ $i -gt 0 ]] && printf "Done.\n"

# Remove old MCPILs
sudo apt-get remove -y mcpil-r mcpil || true

wget -qO- https://raw.githubusercontent.com/MCPI-Revival/mcpi-packages/master/install.sh | sudo bash - || error "Failed to install APT repo!"

# Choose MCPIL to use
PS3="Which launcher for MCPI Modded would you like to use? Need help deciding? Ask here: https://discord.com/invite/aDqejQGMMy
"
options=("gMCPIL (recommended)" "jMCPIL (better GUI)" "Quit")
select opt in "${options[@]}"
do
  case $opt in
    "${options[0]}")
        "${DIRECTORY}/pkg-install" "minecraft-pi-reborn-client gmcpil" "$(dirname "$0")" || exit 1
        break;;
    "${options[1]}")
        "${DIRECTORY}/pkg-install" "minecraft-pi-reborn-client jmcpil" "$(dirname "$0")" || exit 1
        break;;
    "${options[2]}")
        break;;
    *) echo "Invalid option: $REPLY";;
  esac
done

pip3 install mcpi
