diff --git a/scripts/install.sh b/scripts/install.sh index aaec40c9..817d452b 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -6,37 +6,45 @@ # Update Ubuntu and get standard repository programs sudo apt update && sudo apt full-upgrade -y -function install { - which $1 &> /dev/null - - if [ $? -ne 0 ]; then - echo "Installing: ${1}..." - sudo apt install -y $1 - else - echo "Already installed: ${1}" +wanted_packages=( + # Basics + awscli + chrome-gnome-shell + curl + exfat-utils + file + git + htop + jq + yq + nmap + openvpn + tree + vim + wget + + # Image processing + gimp + jpegoptim + optipng +) + +missing_packages=() + +for package in "${wanted_packages[@]}"; do + if ! which "$package" &> /dev/null; then + missing_packages+=("$package") fi -} - -# Basics -install awscli -install chrome-gnome-shell -install curl -install exfat-utils -install file -install git -install htop -install jq -install yq -install nmap -install openvpn -install tree -install vim -install wget - -# Image processing -install gimp -install jpegoptim -install optipng +done + +printf \ + "The following packages are going to be installed:\n%s\n" \ + "${missing_packages[*]}" + +if ! sudo apt install -y "${missing_packages[@]}"; then + printf "Couldn't install some packages. Exiting.\n" + exit 1 +fi # Run all scripts in programs/ for f in programs/*.sh; do bash "$f" -H; done