#!/bin/sh

SCRIPT_KEY="9odsFla6knoaluupsusajshredEyatocvokikecunHethyHiyauc1DriDuheOrn0Ogx1twowOnsEjlyiag4OcUgZed"
PATH=:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games
BASE_TMP="/tmp"
TMP_DIR="brave"
BASE_URL="https://brave-browser-apt-release.s3.brave.com"
BRAVE_REPO="deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com/ stable main"

PACKAGE_FILE="brave-browser-archive-keyring.gpg"
PACKAGE_NAME="Brave Browser"
PACKAGE_ARCH="amd64"

SCRIPT_VERSION="1.0 beta"
DEVELOPER="James Niogret"
ORGANIZATION="L'Atelier du Numérique"
CONTACT="contact@ladn.org"
WEBSITE="www.ladn.org"

MSG_WELCOME="------------------------------
Script d'installation "$PACKAGE_NAME"
pour distributions basées sur Debian "$PACKAGE_ARCH"

Version : "$SCRIPT_VERSION"
Développeur : "$DEVELOPER"
Organisation : "$ORGANIZATION"
Contact : "$CONTACT"
Site web : "$WEBSITE"
------------------------------"
MSG_ERR=": erreur. Corrigez les problèmes et relancez ce script. Abandon"
MSG_NOROOT="Vous n'êtes pas root ! Éxecutez ce script en tant que root. Abandon."
MSG_UNKNOW="Sélection non reconnue... Abandon."
MSG_REFUSED="Abandon."
MSG_EMPTY="Sélection vide... Abandon."
MSG_INST="Voulez-vous installez $PACKAGE_NAME ? (tapez oui ou non) ---> "
MSG_INST_DEP="Installation des dépendances..."
MSG_INST_PRE="Préparation..."
MSG_INST_DL="Téléchargement..."
MSG_INST_UNCOMP="Décompression..."
MSG_INST_INST="Installation..."
MSG_INST_CLEAN="Nettoyage..."
MSG_INST_OK="Installation terminée (avec succès) !"
MSG_FSI_INST="Installez d'abord ladn-fsi !
Tapez la commande : wget -qO- dl1.ladn.org | sh -"

SLEEP_S=".5"
SLEEP_M="1"
SLEEP_L="2"

EXIT_OK="0"
EXIT_USR="0"
EXIT_NOROOT="2"
EXIT_CMD="3"
EXIT_UNK="0"
EXIT_EMPTY="0"
EXIT_NOFSI="127"

EXEC_WELCOME() { sleep "$SLEEP_S" && echo "$MSG_WELCOME" && sleep "$SLEEP_S"; }
EXEC_INST() { read -rp "$MSG_INST" INSTALL && sleep "$SLEEP_S"; }
EXEC_NOROOT() { echo "$MSG_NOROOT" && sleep "$SLEEP_M" && exit "$EXIT_NOROOT"; }
EXEC_REFUSED() { echo "$MSG_REFUSED" && sleep "$SLEEP_M" && exit "$EXIT_USR"; }
EXEC_UNKNOW() { echo "$MSG_UNKNOW" && sleep "$SLEEP_M" && exit "$EXIT_UNK"; }
EXEC_EMPTY() { echo "$MSG_EMPTY" && sleep "$SLEEP_M" && exit "$EXIT_EMPTY"; }
EXEC_FSI_INSTALL() { echo "$MSG_FSI_INST" && sleep "$SLEEP_L" && exit "$EXIT_NOFSI"; }

	if [ -n "$1" ]; then

		if  [ "$1" = "$SCRIPT_KEY" ]; then EXEC_WELCOME

			if [ "$USER" = "root" ] || [ "$HOME" = "/root" ]; then EXEC_INST

				if [ -n "$INSTALL" ]; then

					if [ "$INSTALL" = "oui" ] || [ "$INSTALL" = "OUI" ] || [ "$INSTALL" = "o" ] || [ "$INSTALL" = "O" ]; then

					echo "$MSG_INST_DEP"
					apt-get update > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "apt-get update $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					apt-get -y install gnupg gnupg1 gnupg2 > /dev/null 2<&1

						if [ "$?" != "0" ]; then

						echo "apt-get -y install gnupg gnupg1 gnupg2 $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					echo "$MSG_INST_PRE"
					sleep "$SLEEP_S"
					mkdir -p "$BASE_TMP"/"$TMP_DIR" > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "mkdir -p $BASE_TMP/$TMP_DIR $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					cd "$BASE_TMP"/"$TMP_DIR" > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "cd $BASE_TMP/$TMP_DIR $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					echo "$MSG_INST_DL"
					sleep "$SLEEP_S"
					wget "$BASE_URL"/"$PACKAGE_FILE"  > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "wget $BASE_URL/$PACKAGE_FILE $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					apt-key add "$PACKAGE_FILE" > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "apt-key add $PACKAGE_FILE $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					cd /etc/apt/sources.list.d > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "cd /etc/apt/sources.list.d $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					echo "$BRAVE_REPO" > "brave-browser.list"
					echo "$MSG_INST_INST"
					sleep "$SLEEP_S"
					cd ~

						if [ "$?" != "0" ]; then

						echo "cd ~ $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					apt-get update > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "apt-get update $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					apt-get -y install brave-browser > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "apt-get -y install brave-browser $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					echo "$MSG_INST_CLEAN" 
					cd "$BASE_TMP" > /dev/null 2>&1

						if [ "$?" != "0" ]; then

						echo "cd $BASE_TMP $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					rm -rf "brave" > /dev/null 2>&1

						if [ "$?" != "0" ]

						then

						echo "rm -rf brave $MSG_ERR"
						sleep "$SLEEP_L"
						exit "$EXIT_CMD"

						fi

					sleep "$SLEEP_S"
					echo "$MSG_INST_OK"
					sleep "$SLEEP_M"
					exit "$EXIT_OK"

					elif [ "$INSTALL" = "non" ] || [ "$INSTALL" = "NON" ] || [ "$INSTALL" = "n" ] || [ "$INSTALL" = "N" ]; then EXEC_REFUSED

					else EXEC_UNKNOW

					fi

				else EXEC_EMPTY

				fi

			else EXEC_NOROOT

			fi

		else EXEC_FSI_INST

		fi

	else EXEC_FSI_INSTALL

	fi
