2025-08-24 12:00:26 +02:00

67 lines
2.2 KiB
Bash

#!/bin/bash
# Install build tools
sudo pacman -Sy --needed --noconfirm base-devel
# Ensure Arch mirror is available
while true; do
if curl -sfI -A "omarchy-update" \
https://geo.mirror.pkgbuild.com/core/os/x86_64/core.db >/dev/null; then
break
else
echo -e "\n\e[31mArch mirror is unavailable. Retrying in 10 seconds...\e[0m"
sleep 10
fi
done
# Ensure AUR is available
while true; do
if curl -sfI --connect-timeout 30 -A "omarchy-update" https://aur.archlinux.org >/dev/null &&
curl -sf -A "omarchy-update" \
"https://aur.archlinux.org/rpc/?v=5&type=info&arg=base" |
jq -e '.type=="info"' >/dev/null; then
break
else
echo -e "\n\e[31mAUR is unavailable. Retrying in 10 seconds...\e[0m"
sleep 10
fi
done
# Only add Chaotic-AUR if the architecture is x86_64 so ARM users can build the packages
if [[ "$(uname -m)" == "x86_64" ]] && [ -z "$DISABLE_CHAOTIC" ] && ! command -v yay &>/dev/null; then
# Try installing Chaotic-AUR keyring and mirrorlist
if ! pacman-key --list-keys 3056513887B78AEB >/dev/null 2>&1 &&
sudo pacman-key --recv-key 3056513887B78AEB &&
sudo pacman-key --lsign-key 3056513887B78AEB &&
sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' &&
sudo pacman -U --noconfirm 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'; then
# Add Chaotic-AUR repo to pacman config
if ! grep -q "chaotic-aur" /etc/pacman.conf; then
echo -e '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist' | sudo tee -a /etc/pacman.conf >/dev/null
fi
# Install yay directly from Chaotic-AUR
sudo pacman -Sy --needed --noconfirm yay
else
echo "Failed to install Chaotic-AUR, so won't include it in pacman config!"
fi
fi
# Manually install yay from AUR if not already available
if ! command -v yay &>/dev/null; then
cd /tmp
rm -rf yay-bin
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si --noconfirm
cd -
rm -rf yay-bin
cd ~
fi
# Add fun and color and verbosity to the pacman installer
if ! grep -q "ILoveCandy" /etc/pacman.conf; then
sudo sed -i '/^\[options\]/a Color\nILoveCandy\nVerbosePkgLists' /etc/pacman.conf
fi