refactor(install_utils): convert to bash

This commit is contained in:
mitchell 2026-07-09 03:30:07 -04:00
parent 4ddcc04e96
commit 11d574fae2

View file

@ -1,96 +1,92 @@
#!/usr/bin/env fish #!/bin/bash
function log -a message set -euo pipefail
echo \n"--- $message ---"\n
end
set -l distro # Function to log messages
set -l uname (uname) log() {
echo -e "\n--- $1 ---\n"
}
if test $uname = Darwin distro=""
set distro mac uname_val=$(uname)
else if test -f /etc/os-release
set distro (grep '^ID=' /etc/os-release | string replace 'ID=' '' | string trim -c '"') if [ "$uname_val" = "Darwin" ]; then
distro="mac"
elif [ -f /etc/os-release ]; then
source /etc/os-release
distro=$ID
else else
echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)'
return 1 exit 1
end fi
set -l base_pkgs \ # Base packages array
fish \ base_pkgs=(
git \ git
neovim \ neovim
tmux \ tmux
rsync \ rsync
curl \ curl
less \ less
fzf \ fzf
mosh \ mosh
lsd \ lsd
ripgrep \ ripgrep
bat \ bat
tree-sitter-cli \ tree-sitter-cli
nodejs \ zoxide
zoxide \ git-delta
git-delta \
stow stow
)
set -l mac_pkgs \ # OS specific arrays
$base_pkgs \ mac_pkgs=("${base_pkgs[@]}" fd yazi)
fd \ arch_pkgs=("${base_pkgs[@]}" fd yazi ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-common ttf-nerd-fonts-symbols-mono)
yazi debian_pkgs=("${base_pkgs[@]}" fd-find extrepo)
fedora_pkgs=("${base_pkgs[@]}" fd-find)
set -l arch_pkgs \ case "$distro" in
$base_pkgs \ mac)
fd \
yazi \
ttf-nerd-fonts-symbols \
ttf-nerd-fonts-symbols-common \
ttf-nerd-fonts-symbols-mono
set -l debian_pkgs \
$base_pkgs \
fd-find \
extrepo
set -l fedora_pkgs \
$base_pkgs \
fd-find
switch $distro
case mac
log 'Installing packages with Homebrew' log 'Installing packages with Homebrew'
brew install $mac_pkgs brew install "${mac_pkgs[@]}"
case arch ;;
arch)
log 'Installing yay' log 'Installing yay'
sudo pacman --sync --refresh --sysupgrade --noconfirm sudo pacman --sync --refresh --sysupgrade --noconfirm
and sudo pacman --sync --needed --noconfirm base-devel go bat sudo pacman --sync --needed --noconfirm base-devel go bat
or return
test -d yay if [ ! -d "yay" ]; then
or git clone https://aur.archlinux.org/yay.git git clone https://aur.archlinux.org/yay.git
and cd yay fi
and bat PKGBUILD
and read -P 'Continue? (y/N): ' -l ready cd yay
and test "$ready" = y; or test "$ready" = Y bat PKGBUILD
and makepkg --syncdeps --install --noconfirm read -p 'Continue? (y/N): ' ready
and cd .. if [[ "$ready" =~ ^[yY] ]]; then
or return makepkg --syncdeps --install --noconfirm
else
echo "Installation aborted."
exit 1
fi
cd ..
log 'Installing packages with yay' log 'Installing packages with yay'
yay --sync --noconfirm "${arch_pkgs[@]}"
yay --sync --noconfirm $arch_pkgs ;;
case debian debian | ubuntu)
log 'Installing packages with APT' log 'Installing packages with APT'
sudo apt-get --quiet --yes update sudo apt-get --quiet --yes update
and sudo apt-get --quiet --yes upgrade sudo apt-get --quiet --yes upgrade
and sudo apt-get --quiet --yes install $debian_pkgs sudo apt-get --quiet --yes install "${debian_pkgs[@]}"
case fedora ;;
fedora | rhel | rocky | almalinux | centos)
log 'Installing packages with DNF' log 'Installing packages with DNF'
sudo dnf upgrade --assumeyes sudo dnf upgrade --assumeyes
and sudo dnf --assumeyes install $fedora_pkgs sudo dnf install --assumeyes --skip-broken "${fedora_pkgs[@]}"
case '*' ;;
*)
echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)' echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)'
return 1 exit 1
end ;;
esac