mirror of
https://github.com/mitchell/dotfiles.git
synced 2026-08-10 00:09:35 +00:00
94 lines
1.8 KiB
Bash
Executable file
94 lines
1.8 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
set -euo pipefail
|
|
|
|
# Function to log messages
|
|
log() {
|
|
echo -e "\n--- $1 ---\n"
|
|
}
|
|
|
|
distro=""
|
|
uname_val=$(uname)
|
|
|
|
if [ "$uname_val" = "Darwin" ]; then
|
|
distro="mac"
|
|
elif [ -f /etc/os-release ]; then
|
|
source /etc/os-release
|
|
distro=$ID
|
|
else
|
|
echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)'
|
|
exit 1
|
|
fi
|
|
|
|
# Base packages array
|
|
base_pkgs=(
|
|
git
|
|
neovim
|
|
tmux
|
|
rsync
|
|
curl
|
|
less
|
|
fzf
|
|
mosh
|
|
lsd
|
|
ripgrep
|
|
bat
|
|
tree-sitter-cli
|
|
zoxide
|
|
git-delta
|
|
stow
|
|
)
|
|
|
|
# OS specific arrays
|
|
mac_pkgs=("${base_pkgs[@]}" fd yazi)
|
|
arch_pkgs=("${base_pkgs[@]}" fd yazi ttf-nerd-fonts-symbols ttf-nerd-fonts-symbols-common ttf-nerd-fonts-symbols-mono)
|
|
debian_pkgs=("${base_pkgs[@]}" fd-find extrepo)
|
|
fedora_pkgs=("${base_pkgs[@]}" fd-find)
|
|
|
|
case "$distro" in
|
|
mac)
|
|
log 'Installing packages with Homebrew'
|
|
brew install "${mac_pkgs[@]}"
|
|
;;
|
|
arch)
|
|
log 'Installing yay'
|
|
|
|
sudo pacman --sync --refresh --sysupgrade --noconfirm
|
|
sudo pacman --sync --needed --noconfirm base-devel go bat
|
|
|
|
cd /tmp
|
|
if [ ! -d "yay" ]; then
|
|
git clone https://aur.archlinux.org/yay.git
|
|
fi
|
|
|
|
cd yay
|
|
bat PKGBUILD
|
|
read -p 'Continue? (y/N): ' ready
|
|
if [[ "$ready" =~ ^[yY] ]]; then
|
|
makepkg --syncdeps --install --noconfirm
|
|
else
|
|
echo "Installation aborted."
|
|
exit 1
|
|
fi
|
|
|
|
log 'Installing packages with yay'
|
|
yay -Y --save --devel
|
|
yay -Y --save --answerdiff All
|
|
yay --sync --noconfirm "${arch_pkgs[@]}"
|
|
;;
|
|
debian | ubuntu)
|
|
log 'Installing packages with APT'
|
|
sudo apt-get --quiet --yes update
|
|
sudo apt-get --quiet --yes upgrade
|
|
sudo apt-get --quiet --yes install "${debian_pkgs[@]}"
|
|
;;
|
|
fedora | rhel | rocky | almalinux | centos)
|
|
log 'Installing packages with DNF'
|
|
sudo dnf upgrade --assumeyes
|
|
sudo dnf install --assumeyes --skip-broken "${fedora_pkgs[@]}"
|
|
;;
|
|
*)
|
|
echo 'Your OS is unsupported. Supported: Arch, Debian, Fedora, Mac (Brew)'
|
|
exit 1
|
|
;;
|
|
esac
|