Ensure package repositories are available before installing or doing updates

This commit is contained in:
David Heinemeier Hansson 2025-08-24 12:10:07 +02:00
parent 6b3b93ded1
commit aa32b147ad
4 changed files with 30 additions and 28 deletions

View File

@ -1,5 +0,0 @@
#!/bin/bash
if ! curl -s --connect-timeout 10 --head -A "omarchy-update" -o /dev/null "https://aur.archlinux.org/"; then
gum spin --spinner "globe" --title "The AUR package repository is currently unavailable, please try again later" -- sleep 2 && exit 1
fi

View File

@ -0,0 +1,27 @@
#!/bin/bash
echo "Ensuring all package repositories are available..."
# 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 "\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 "\e[31mAUR is unavailable. Retrying in 10 seconds...\e[0m"
sleep 10
fi
done

View File

@ -2,6 +2,7 @@
set -e
omarchy-pkg-repos-accessible
omarchy-snapshot create || [ $? -eq 127 ]
omarchy-update-git
omarchy-migrate

View File

@ -3,29 +3,8 @@
# 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
# Ensure package repositories are accessible before proceeding
omarchy-pkg-repos-accessible
# 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