Run local scripts first before using from github

This commit is contained in:
alvinlollo
2026-01-21 16:19:05 -08:00
parent fd6f3f5b37
commit 3a139a3563
3 changed files with 71 additions and 20 deletions
+2 -1
View File
@@ -2,7 +2,8 @@
if command -v pacman </dev/null; then
echo "Cannot proceed: Not a arch based system"
echo "This script does not have debian support"
exit
echo "+ sleep 10" && sleep 10
exit 1
fi
sudo pacman -S --needed --noconfirm git curl wget python3 python-pip
+39 -13
View File
@@ -16,8 +16,9 @@ echo '
|___/
--------------- Single Download script (Beta) ---------------
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE UNDER THE GPL-2.0 LICENCE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. See the LICENCE for more detail
BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE UNDER THE GPL-2.0 LICENCE,
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
See the LICENCE for more detail
'
fi
@@ -40,6 +41,8 @@ fi
if command -v apt >/dev/null; then
echo "apt detected. Installing prerequisites"
sudo apt update
sudo apt full-upgrade -y
sudo apt install git zsh curl wget whiptail -y
fi
@@ -101,36 +104,54 @@ for selection in $CHOICE; do
case $clean_selection in
"1")
echo "Running zsh setup script..."
bash "$(curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/zsh.sh)" --skip-watermark
# Runs local script unless it does not exist or fails
if [[ -f "zsh.sh "]]; then
echo "Found local script, running..."
bash zsh.sh --skip-watermark; then
else
bash "$(curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/zsh.sh)" --skip-watermark
fi
;;
"2")
echo "Running LazyVim setup script..."
curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/LazyVim.sh | bash
# Runs local script unless it does not exist or fails
if [[ -f "LazyVim.sh" ]];then
echo "Found local script, running..."
bash LazyVim.sh; then
else
curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/LazyVim.sh | bash
fi
;;
"3")
echo "Installing Docker..."
if ! command -v docker >/dev/null; then
echo "docker is NOT installed. Running installation commands..."
echo "docker is NOT installed. Installing..."
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
else
sudo usermod -aG docker $USER
echo "Docker is already installed."
echo "+ sleep 10" && sleep 10
fi
;;
"4")
echo "Installing Pacman Packages..."
# Check if pacman binary is installed
if command -v pacman </dev/null; then
echo "Cannot proceed: Not a arch based system"
exit
echo "Cannot proceed: pacman binary not found"
exit 1 # exit with an error
fi
# Install 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
# Runs local script unless it does not exit or fails
if [[ -f "./configs/PackagesPacman.txt" ]]; then
echo "Found local config"
cat ./configs/PackagesPacman.txt | sudo pacman -S - --needed --noconfirm
elif ! curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesPacman.txt | sudo pacman -S - --needed --noconfirm; then
echo "--------------------------------------------------------------------"
echo "Failed to install Pacman packages. You can try running it manually:"
echo "curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesPacman.txt | sudo pacman -S - --needed --noconfirm"
echo "--------------------------------------------------------------------"
echo "+ sleep 10" && sleep 10
fi
;;
"5")
@@ -138,7 +159,7 @@ for selection in $CHOICE; do
# Check for pacman before installing yay
if command -v pacman </dev/null; then
echo "Cannot proceed: Not a arch based system"
exit
exit 1 # Exit with an error
fi
# Install yay prerequisites
if ! sudo pacman -S --needed --noconfirm efibootmgr sbsigntools mokutil sbctl golang fakeroot debugedit make gcc; then
@@ -146,7 +167,7 @@ for selection in $CHOICE; do
echo "Failed to install prerequisite packages for Yay. You can try running it manually:"
echo "sudo pacman -S --needed --noconfirm efibootmgr sbsigntools mokutil sbctl golang fakeroot debugedit make gcc"
echo "--------------------------------------------------------------------"
exit
exit 1 # exit with an error
fi
# Check if yay binary exists
if ! command -v yay >/dev/null; then
@@ -156,24 +177,29 @@ for selection in $CHOICE; do
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 "--------------------------------------------------------------------"
exit
exit 1 # exit with an error
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 "--------------------------------------------------------------------"
exit
exit 1 # exit with an error
fi
rm -rf /tmp/yay_install
else
echo "Yay is already installed."
fi
# Install yay packages
if ! curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesYay.txt | yay -S --needed --save --answerclean None --answerdiff None - --noconfirm; then
# Runs local script unless it does no exist or fails
if [[ -f "./config/PackagesYay.txt" ]]; then
echo "Found local config"
cat ./config/PackagesYay.txt | yay -S --needed --save --answerclean None --answerdiff None - --noconfirm; then
elif ! curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/refs/heads/main/configs/PackagesYay.txt | yay -S --needed --save --answerclean None --answerdiff None - --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 None --answerdiff None - --noconfirm"
echo "--------------------------------------------------------------------"
echo "+ sleep 10" && sleep 10
fi
;;
*)
+30 -6
View File
@@ -62,6 +62,9 @@ set +x
# Install oh-my-zsh without entering zsh
CHSH=no sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
# Print commands
set -x
# Install Oh-My-Zsh plugins
git clone https://github.com/zsh-users/zsh-history-substring-search ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-history-substring-search
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
@@ -73,7 +76,7 @@ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:
set +eu
# Backup old config file if it exists
cp .zshrc .zshrc.backup
cp .zshrc .zshrc{,.bak} -r
# Enable exit on error
set -eu
@@ -88,14 +91,35 @@ curl -fsSL https://raw.githubusercontent.com/alvinlollo/Single-install-script/re
mkdir -p ~/.fzf/shell
touch ~/.fzf/shell/key-bindings.zsh
sudo sh -c "echo $(which zsh) >> /etc/shells"
# Do not print commands
set +x
echo 'Please run to change default shell:
chsh -s /bin/zsh'
# If this user's login shell is already "zsh", do not attempt to switch.
if [ "$(basename -- "$SHELL")" = "zsh" ]; then
return
fi
if command -v chsh >/dev/null; then
echo "chsh command does not exist."
echo "Please change your shell manually"
sleep 5 && exit 0
fi
echo "Changing your shell to $zsh..."
if ! sudo -k chsh -s "$zsh" "$USER"; then # -k forces password prompt
echo "Next command may fail."
chsh -s $"(which zsh)" "$USER" # run chsh normally may fail
fi
# Check if the shell change was successful
if [ $? -ne 0 ]; then
echo "chsh command unsuccessful. Change your default shell manually:"
echo "chsh -s $"(which zsh)" $USER"
else
export SHELL="$zsh"
echo "Shell successfully changed to '$zsh'."
fi
# Print commands
set -x
sleep 10