Installers/allpac/install.sh
2024-01-07 20:31:16 -07:00

115 lines
2.5 KiB
Bash

#!/bin/bash
mkdir -p ~/.allpac/cache ~/.allpac/logs ~/.allpac/bin
echo "We are about to write a new pkg.list"
echo "Do you want us to proceed?"
echo "(reply "n" if you already have a pkg.list)"
read -p "Proceed? [Y/n] " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Writing new pkg.list..."
sleep 1
touch ~/.allpac/pkg.list
echo "{}" > pkg.list
else
echo "Skipping writing new pkg.list..."
sleep 1
fi
go_version=$(go version 2>/dev/null)
required_version="go1.21.5"
echo "Checking if Go is installed..."
if [[ "$go_version" != *"$required_version"* ]]; then
echo "Required Go version is not installed."
read -p "Do you want to install Go? [Y/n] " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
sudo pacman -Sy go
else
echo "Go not installed. Exiting."
exit 1
fi
fi
sleep 1
echo "Compatible Go version is installed!"
echo "Checking if Git is installed..."
if ! command -v git &>/dev/null; then
echo "Git is not installed."
read -p "Do you want to install Git? [Y/n] " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
sudo pacman -S git
else
echo "Git not installed. Exiting."
exit 1
fi
fi
sleep 1
echo "Git is installed!"
echo "Cloning AllPac Repository from Git..."
sleep 1
git clone https://git.pixelridgesoftworks.com/PixelRidge-Softworks/AllPac.git
echo "Descending into cloned repo..."
sleep 1
cd AllPac/cmd/ || exit
echo "Ensuring we have up to date dependencies..."
go mod tidy
sleep 1
echo "Building binary..."
go build -o ~/.allpac/bin/allpac
sleep 1
echo "Binary built!"
shell_rc=""
case $SHELL in
*/bash)
shell_rc="$HOME/.bashrc"
;;
*/zsh)
shell_rc="$HOME/.zshrc"
;;
*)
echo "Unsupported shell. Please manually add ~/.allpac/bin to your PATH."
exit 1
;;
esac
echo "Adding AllPac to the system path..."
sleep 1
echo 'export PATH=$PATH:$HOME/.allpac/bin' >> "$shell_rc"
source "$shell_rc"
updater_url="https://git.pixelridgesoftworks.com/PixelRidge-Softworks/Installers/raw/branch/main/allpac/update.sh"
echo "Downloading updater script..."
wget -O ~/.allpac/bin/allpac-updater.sh "$updater_url"
sleep 1
echo "Setting updater script permissions..."
chmod u+rwx ~/.allpac/bin/allpac-updater.sh
sleep 1
echo "Aliasing the updater script..."
echo "alias allpac-update-system='~/.allpac/bin/allpac-updater.sh'" >> "$shell_rc"
source "$shell_rc"
echo "Cleaning up..."
cd ../../
rm -rf AllPac
echo "AllPac setup complete."