#!/bin/sh

## Variables
export TOOLS="htop rsync git neofetch"
export OPENVIM="vim--no_x11"
export VIM="vim"

## Functions
createvinishor () {
  # Create my account
  adduser vinishor
  usermod -a -G wheel vinishor
  mkdir /home/vinishor/.ssh
  chmod 700 /home/vinishor/.ssh && chown vinishor /home/vinishor/.ssh
  touch /home/vinishor/.ssh/authorized_keys && chmod 600 /home/vinishor/.ssh/authorized_keys && chown vinishor /home/vinishor/.ssh/authorized_keys
  echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGy6nSw1+DP6HtUXsZ/b0FgDK5ZWggZy6K00oEUzG5En Fuji" > /home/vinishor/.ssh/authorized_keys
  echo "Compte ajouté"
  echo ""
}

openbsdupdate () {
  syspatch
  fw_update
  pkg_add -uv
}

rhupdate () {
  dnf install epel-release -y
  dnf update -y
}

debupdate () {
  apt update && apt upgrade -y
}

## Execution zone
### Start

echo "       _       _     _                    _             _            ";
echo "__   _(_)_ __ (_)___| |__   ___  _ __ ___| |_ __ _ _ __| |_ ___ _ __ ";
echo "\ \ / / | '_ \| / __| '_ \ / _ \| '__/ __| __/ _\` | '__| __/ _ \ '__|";
echo " \ V /| | | | | \__ \ | | | (_) | |_ \__ \ || (_| | |  | ||  __/ |   ";
echo "  \_/ |_|_| |_|_|___/_| |_|\___/|_(_)|___/\__\__,_|_|   \__\___|_|   ";
echo "                                                                     ";
echo "        Le super installateur automatique pour gros flemmards        ";
echo "                                                                     ";
echo "                                                                     ";

echo "Ce script va détecter automatiquement quel système est installé et";
echo "si mon compte utilisateur est présent sur la machine. Il va ensuite";
echo "installer quelques outils sympas et tout sera prêt pour bosser !";
echo "";

### What is it?
if test -f /bsd
then
	echo "Ce serveur est sous OpenBSD"
	SERVER="OBSD"
elif test -f /boot/beastie.4th
then
	echo "Ce serveur est sous FreeBSD"
	SERVER='FREEBSD'
elif test -f /usr/bin/dnf
then
	echo "Ce serveur est sous Linux et de famille Red Hat"
	SERVER='RH'
elif test -f /usr/bin/apt
then
	echo "Ce server est sous Linux et de famille Debian"
	SERVER='DEB'
else
	echo "Je ne sais pas ce que c'est, je vais me fermer automatiquement"
	exit
fi

### Test if my account exists or not
if test -d /home/vinishor
then
	echo "Compte opérationnel (en théorie)"
	echo ""
else
	createvinishor
fi

### Update the server
echo "Mise à jour et installation des outils"
echo ""
case "$SERVER" in
	"OBSD")
		openbsdupdate
		pkg_add -i $TOOLS $OPENVIM checkrestart
		;;
	"FREEBSD")
		freebsdupdate
		pkg install -y $TOOLS $VIM checkrestart
		;;
	"RH")
		rhupdate
		dnf install -y $TOOLS $VIM yum-utils
		;;
	"DEB")
		debupdate
		apt install -y $STOOLS $VIM checkrestart
		;;
esac
