#!/bin/sh

SCRIPT_KEY="9odsFla6knoaluupsusajshredEyatocvokikecunHethyHiyauc1DriDuheOrn0Ogx1twowOnsEjlyiag4OcUgZed"

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/games
TMP_DIR="/tmp/ladn-os_kde-splash"
SPLASH_DIR="splash"
INST_DIR="/usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents"
BASE_URL="https://download.ladn.org/archives/linux/desktop-style/ladn-OS"
ARCHIVE_FILE="kde-splash.tar.bz2"
LOG_DIR="/var/log/ladn-fsi"
LOG_FILE="ladn-os_kde_splash.log"
LOG_PATH="$LOG_DIR/$LOG_FILE"

PACKAGE_NAME="ladn-OS KDE Splash"
DEVELOPER="James Niogret"
ORGANIZATION="L'Atelier du Nuémrique"
CONTACT="contact@ladn.org"
WEBSITE="www.ladn.org"
MSG_WELCOME="
------------------------------
Script d'installation $PACKAGE_NAME

Developpeur : $DEVELOPER
Organisation : $ORGANIZATION
Contact : $CONTACT
Site Web : $WEBSITE
------------------------------
"
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_ERR="Erreur lors de l'exécution d'une commande.
Consultez le log dans $LOG_PATH
Abandon."
MSG_REFUSED="Abandon."
MSG_UNKNOW="Sélection non reconnue... Abandon."
MSG_EMPTY="Sélection vide... Abandon."
MSG_NOROOT="Vous n'êtes pas root ! Exécutez ce script en tant que root. Abandon."
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_NOFSI() { sleep "$SLEEP_S" && echo "$MSG_FSI_INSTALL" && sleep "$SLEEP_M" && exit "$EXIT_NOFSI"; }
EXEC_NOROOT() { sleep "$SLEEP_S" && echo "$MSG_NOROOT" && sleep "$SLEEP_M" && exit "$EXIT_NOROOT"; }
EXEC_WELCOME() { sleep "$SLEEP_S" && echo "$MSG_WELCOME"; }
EXEC_PROMPT() { sleep "$SLEEP_S" && read -rp "$MSG_INST" INSTALL && sleep "$SLEEP_M"; }
EXEC_EMPTY() { sleep "$SLEEP_S" && echo "$MSG_EMPTY" && sleep "$SLEEP_M" && exit "$EXIT_EMPTY"; }
EXEC_REFUSED() { sleep "$SLEEP_S" && echo "$MSG_REFUSED" && sleep "$SLEEP_M" && exit "$EXIT_USR"; }
EXEC_UNKNOW() { sleep "$SLEEP_S" && echo "$MSG_UNKNOW" && sleep "$SLEEP_M" && exit "$EXIT_UNK"; }
CMD_CHK() { if [ "$?" != "0" ]; then echo "$MSG_ERR" && sleep "$SLEEP_L" && exit "$EXIT_CMD"; fi; }
MK_LOG() { mkdir -p "$LOG_DIR" && touch "$LOG_PATH"; }
EXEC_INST_DEP() { sleep "$SLEEP_S" && echo "$MSG_INST_DEP" && apt-get update >> "$LOG_PATH" 2>&1 && CMD_CHK && apt-get -y install lbzip2 rsync >> "$LOG_PATH" 2>&1 && CMD_CHK; }
EXEC_INST_PRE() { sleep "$SLEEP_S" && echo "$MSG_INST_PRE" && mkdir -pv "$TMP_DIR" >> "$LOG_PATH" && CMD_CHK && cd "$TMP_DIR" >> "$LOG_PATH" && CMD_CHK; }
EXEC_INST_DL() { sleep "$SLEEP_S" && echo "$MSG_INST_DL" && wget -v "$BASE_URL"/"$ARCHIVE_FILE" >> "$LOG_PATH" 2>&1 && CMD_CHK; }
EXEC_INST_UNCOMP() { sleep "$SLEEP_S" && echo "$MSG_INST_UNCOMP" && tar -I lbzip2 -xvf "$ARCHIVE_FILE" > "$LOG_PATH" 2>&1 && CMD_CHK; }
EXEC_INST_INST() { sleep "$SLEEP_S" && echo "$MSG_INST_INST" && mkdir -p "$INST_DIR/$SPLASH_DIR" >> "$LOG_PATH" 2>&1 && rsync -av --delete "$TMP_DIR/$SPLASH_DIR/" "$INST_DIR/$SPLASH_DIR/" >> "$LOG_PATH" 2>&1 && CMD_CHK && chown -Rv root: "$INST_DIR/$SPLASH_DIR" >> "$LOG_PATH" 2>&1 && CMD_CHK && chmod -Rv 0775 "$INST_DIR/$SPLASH_DIR" >> "$LOG_PATH" 2>&1 && CMD_CHK; }
EXEC_INST_CLEAN() { sleep "$SLEEP_S" && echo "$MSG_INST_CLEAN" && rm -rf "$TMP_DIR" >> "$LOG_PATH" && CMD_CHK; }
EXEC_INST_OK() { sleep "$SLEEP_S" && echo "$MSG_INST_OK" && exit "$EXIT_OK"; }
EXEC_INST() { MK_LOG && EXEC_INST_DEP && EXEC_INST_PRE && EXEC_INST_DL && EXEC_INST_UNCOMP && EXEC_INST_INST && EXEC_INST_CLEAN && EXEC_INST_OK; }

	if [ -n "$1" ]; then
		if [ "$1" = "$SCRIPT_KEY" ]; then EXEC_WELCOME
			if [ "$USER" = "root" ] || [ "$HOME" = "/root" ]; then EXEC_PROMPT
				if [ -n "$INSTALL" ]; then
					if [ "$INSTALL" = "oui" ] || [ "$INSTALL" = "OUI" ] || [ "$INSTALL" = "o" ] || [ "$INSTALL" = "O" ]; then EXEC_INST
					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_NOFSI
		fi
	else EXEC_NOFSI
	fi
