Make installbeta.sh main install script

This commit is contained in:
alvinlollo
2025-11-12 12:55:55 +11:00
committed by GitHub
parent a9e213a1eb
commit 2696924db8
+107 -54
View File
@@ -9,66 +9,119 @@ echo '
|____/ \__ | \__ _|_| \_/ |_|_| |_|_|\___/|_|_|\___/ |____/ \__ | \__ _|_| \_/ |_|_| |_|_|\___/|_|_|\___/
|___/ |___/
--------------- Single Download script --------------- --------------- Single Download script (BETA) ---------------
' '
# Function to display error message
function error_handler() {
set +x
echo -e "An error occurred. Please check the output above for details."
}
# Trap errors
trap error_handler ERR
#Install prerequisites
sudo pacman -Syu git zsh curl --noconfirm --needed
# Ensure whiptail is installed
if ! command -v whiptail >/dev/null; then
echo "whiptail is not installed. Installing it now..."
sudo pacman -S --noconfirm whiptail || { echo "Failed to install whiptail. Exiting."; exit 1; }
fi
# Options for the whiptail menu
OPTIONS=(
1 "Run zsh setup script" ON
2 "Run LazyVim setup script" OFF
3 "Install Docker" OFF
4 "Install Pacman Packages" ON
5 "Install Yay and AUR Packages" ON
)
CHOICE=$(whiptail --title "Installation Options" --checklist \
"Choose components to install:" 20 78 10 \
"${OPTIONS[@]}" 3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
echo "User selected: $CHOICE"
else
echo "User cancelled installation."
exit 1
fi
# Fail on any command. # Fail on any command.
set -eux pipefail set -eu pipefail
# Install prerequisites # Process selected options
sudo pacman -Syu git zsh curl git --noconfirm --needed for selection in $CHOICE; do
clean_selection=$(echo $selection | tr -d '"')
# Do not exit on fail case $clean_selection in
set +eux "1")
echo "Running zsh setup script..."
curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/zsh.sh | bash curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/zsh.sh | bash
;;
curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/LazyVim.sh | bash "2")
echo "Running LazyVim setup script..."
# Do not print commands curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/LazyVim.sh | bash
set +x ;;
echo ' "3")
--------------- Docker install --------------- echo "Installing Docker..."
if ! command -v docker >/dev/null; then
'
set -x
# Do not fail (in case the OS is not supported)
set +eux
if ! command -v docker >/dev/null; then
echo "docker is NOT installed. Running installation commands..." echo "docker is NOT installed. Running installation commands..."
curl -fsSL https://get.docker.com | sh curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER sudo usermod -aG docker $USER
fi else
echo "Docker is already installed."
# Do not print commands fi
set +x ;;
echo ' "4")
--------------- Packages Install --------------- echo "Installing Pacman Packages..."
if ! curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesPacman.txt | sudo pacman -S - --needed --noconfirm; then
' echo "--------------------------------------------------------------------"
set -x echo "Failed to install Pacman packages. You can try running it manually:"
# Install personal Packages echo "curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesPacman.txt | sudo pacman -S - --needed --noconfirm"
echo "--------------------------------------------------------------------"
curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesPacman.txt | sudo pacman -S - --needed --noconfirm fi
;;
sudo pacman -S --needed -noconfirm efibootmgr sbsigntools mokutil sbctl "5")
echo "Installing Yay and Yay Packages..."
if ! command -v yay >/dev/null; then if ! sudo pacman -S --needed --noconfirm efibootmgr sbsigntools mokutil sbctl; then # These were in the original script before yay install
echo "--------------------------------------------------------------------"
echo "Failed to install prerequisite packages for Yay. You can try running it manually:"
echo "sudo pacman -S --needed --noconfirm efibootmgr sbsigntools mokutil sbctl"
echo "--------------------------------------------------------------------"
fi
if ! command -v yay >/dev/null; then
echo "yay is NOT installed. Running installation commands..." echo "yay is NOT installed. Running installation commands..."
git clone https://aur.archlinux.org/yay.git if ! git clone https://aur.archlinux.org/yay.git /tmp/yay_install; then
makepkg -si ./yay echo "--------------------------------------------------------------------"
fi echo "Failed to clone yay repository. You can try running it manually:"
echo "git clone https://aur.archlinux.org/yay.git /tmp/yay_install"
echo "--------------------------------------------------------------------"
elif ! (cd /tmp/yay_install && makepkg -si --noconfirm); then
echo "--------------------------------------------------------------------"
echo "Failed to build and install yay. You can try running it manually:"
echo "cd /tmp/yay_install && makepkg -si --noconfirm"
echo "--------------------------------------------------------------------"
fi
rm -rf /tmp/yay_install
else
echo "Yay is already installed."
fi
# Assuming PackagesYay.txt for yay packages, as per common practice
if ! curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesYay.txt | yay -S --needed --save --answerclean All --answerdiff All - --noconfirm; then
echo "--------------------------------------------------------------------"
echo "Failed to install Yay packages. You can try running it manually:"
echo "curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesYay.txt | yay -S --needed --save --answerclean All --answerdiff All - --noconfirm"
echo "--------------------------------------------------------------------"
fi
;;
*)
echo "Invalid option selected: $selection"
;;
esac
done
curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesPacman.txt | yay -S --needed --save --answerclean All --answerdiff All - echo "Installation process complete."
# Command will freeze for a while
sudo npm install -g @google/gemini-cli
# Do not print commands
set +x
# Done message :)
echo "Done installing please star my repo: https://github.com/alvinlollo/Single-install-script"
echo "Reboot reccommended, run zsh a few times to fix configurations"