diff --git a/scripts/startup.sh b/scripts/startup.sh index 98bba69..4b834ed 100755 --- a/scripts/startup.sh +++ b/scripts/startup.sh @@ -22,7 +22,46 @@ set_option() { fi echo "${1}=${2}" >>$CONFIG_FILE # add option } -# @description Renders a text based list of options that can be selected by the + +root_check() { + if [[ "$(id -u)" != "0" ]]; then + echo -ne "ERROR! This script must be run under the 'root' user!\n" + exit 0 + fi +} + +docker_check() { + if awk -F/ '$2 == "docker"' /proc/self/cgroup | read -r; then + echo -ne "ERROR! Docker container is not supported (at the moment)\n" + exit 0 + elif [[ -f /.dockerenv ]]; then + echo -ne "ERROR! Docker container is not supported (at the moment)\n" + exit 0 + fi +} + +arch_check() { + if [[ ! -e /etc/arch-release ]]; then + echo -ne "ERROR! This script must be run in Arch Linux!\n" + exit 0 + fi +} + +pacman_check() { + if [[ -f /var/lib/pacman/db.lck ]]; then + echo "ERROR! Pacman is blocked." + echo -ne "If not running remove /var/lib/pacman/db.lck.\n" + exit 0 + fi +} + +background_checks() { + root_check + arch_check + pacman_check + docker_check +} +# Renders a text based list of options that can be selected by the # user using up, down and enter keys and returns the chosen option. # # Arguments : list of options, maximum of 256 @@ -317,6 +356,7 @@ installtype () { # language (){} # Starting functions +background_checks clear logo userinfo