2025-10-09 15:42:38 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
2025-10-10 20:29:07 +02:00
|
|
|
source assets/shell/colors
|
|
|
|
|
source assets/config/deps/dependencies
|
|
|
|
|
|
|
|
|
|
### DEPENDENCY CHECK & INSTALLER
|
|
|
|
|
|
|
|
|
|
echo -e "\n ${LCY}Dependency and Privilege Check running...${CRS}\n"
|
|
|
|
|
|
|
|
|
|
### PRIVILEGES
|
|
|
|
|
|
|
|
|
|
if (( $(id -u) == 0 )); then ### AM I ROOT?
|
|
|
|
|
echo -e " ${GRN}Privilege check passed...${CRS}\n"
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
echo -e " ${RED}Privilege check failed... Please run script with sudo or as root!${CRS}\n"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
### DEPENDENCIES
|
|
|
|
|
|
2025-10-10 21:37:12 +02:00
|
|
|
check_for_package() {
|
|
|
|
|
if dpkg-query -s "$1" 1>/dev/null 2>&1; then
|
|
|
|
|
return 0
|
|
|
|
|
elif apt-cache show "$1" 1>/dev/null 2>&1; then
|
|
|
|
|
return 1
|
|
|
|
|
else
|
|
|
|
|
return 2
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for package in $deps; do
|
|
|
|
|
if check_for_package "$package"; then
|
|
|
|
|
printf "%-20s - %s\n" "$package" "package is installed"
|
|
|
|
|
elif [ $? -eq 1 ]; then
|
|
|
|
|
printf "%-20s - %s\n" "$package" "package is not installed, it is available in package repository"
|
|
|
|
|
else
|
|
|
|
|
printf "%-20s - %s\n" "$package" "package is not installed, it is not available in package repository"
|
|
|
|
|
fi
|
|
|
|
|
done
|
2025-10-10 20:29:07 +02:00
|
|
|
|
|
|
|
|
while true; do
|
|
|
|
|
echo -e " ${YEL}Do you wish to install via APT?"
|
|
|
|
|
read -p " (Y/n) --> " install
|
|
|
|
|
echo ""
|
|
|
|
|
if [[ "$install" = "" || "$install" = "y" || "$install" = "Y" ]]; then
|
|
|
|
|
sudo apt update && sudo apt install -y $pkgs_apt
|
|
|
|
|
echo -e "\n ${GRN}Dependencies installed. Proceeding...${CRS}\n"
|
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
elif [[ "$install" == "n" || "$install" = "N" ]]; then
|
|
|
|
|
echo -e "\n ${RED}Missing dependencies... Exiting!${CRS}\n"
|
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
echo -e "\n ${YEL}Invalid response... Try again...\n\n ${GRN}Y ${YEL}= (Yes, install dependencies and continue)\n ${RED}N ${YEL}= (No, don't install dependencies and exit)${CRS}\n "
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
fi
|