75 lines
1.7 KiB
Bash
75 lines
1.7 KiB
Bash
#!/usr/bin/env zsh
|
|
|
|
packages=(
|
|
"zsh"
|
|
"git"
|
|
"curl"
|
|
"wget"
|
|
"vim"
|
|
"tmux"
|
|
"sl"
|
|
"just"
|
|
"libglvnd-dev"
|
|
"libwayland-dev"
|
|
"libseat-dev"
|
|
"libxkbcommon-dev"
|
|
"libinput-dev"
|
|
"udev"
|
|
"dbus"
|
|
"libdbus-1-dev"
|
|
"libsystemd-dev"
|
|
"libpixman-1-dev"
|
|
"libssl-dev"
|
|
"libflatpak-dev"
|
|
"libpulse-dev"
|
|
"libexpat1-dev"
|
|
"libfontconfig-dev"
|
|
"libfreetype-dev"
|
|
"mold"
|
|
"cargo"
|
|
"libgbm-dev"
|
|
"libclang-dev"
|
|
"libpipewire-0.3-dev"
|
|
"libpam0g-dev"
|
|
"openssh-server"
|
|
"build-essential"
|
|
"flatpak"
|
|
"meson"
|
|
"pipx"
|
|
"python3-nautilus"
|
|
"gettext"
|
|
"fzf"
|
|
"neofetch"
|
|
"screenfetch"
|
|
)
|
|
|
|
ensure_packages_installed() {
|
|
ensure_sudo_privileges "In order to install packages, please provide your password:"
|
|
|
|
# Check if packages array contains duplicates
|
|
if [ $(echo $packages | tr ' ' '\n' | sort | uniq -d | wc -l) -ne 0 ]; then
|
|
printfe "%s\n" "red" "The packages array contains duplicates"
|
|
printfe "%s\n" "yellow" "Duplicates:"
|
|
printfe "%s\n" "blue" $(echo $packages | tr ' ' '\n' | sort | uniq -d)
|
|
exit 1
|
|
fi
|
|
|
|
for package in $packages; do
|
|
if ! command -v $package &> /dev/null; then
|
|
printfe "%s" "yellow" "Installing $package..."
|
|
echo -en "\r"
|
|
|
|
sudo apt install -y $package &> /dev/null
|
|
|
|
if [ $? -ne 0 ]; then
|
|
printfe "%s\n" "red" "Failed to install $package"
|
|
exit 1
|
|
else
|
|
printfe "%s\n" "green" "$package installed successfully"
|
|
fi
|
|
else
|
|
printfe "%s\n" "green" "$package is already installed"
|
|
fi
|
|
done
|
|
}
|