Retry AUR clones and report the real error on failure
A transient network failure cloning retroarch-joypad-autoconfig-git took the whole sync workflow red. Clones now retry up to 3 times, and the failure message includes git's actual error instead of guessing "may not exist in AUR" — which was never the cause anyway: AUR serves an empty repo for unknown package names, so that case is now detected explicitly by the missing PKGBUILD. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
eb0cce3d5c
commit
f95d544fdb
1 file changed
+28
-3
+28
-3
@@ -272,6 +272,27 @@ apply_pkgrel_override() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
clone_aur_package() {
|
||||||
|
local aur_package="$1"
|
||||||
|
local dest="$2"
|
||||||
|
local clone_log="$TEMP_DIR/clone.log"
|
||||||
|
local attempt
|
||||||
|
|
||||||
|
for attempt in 1 2 3; do
|
||||||
|
rm -rf "$dest"
|
||||||
|
if git clone "https://aur.archlinux.org/${aur_package}.git" "$dest" >"$clone_log" 2>&1; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [[ $attempt -lt 3 ]]; then
|
||||||
|
print_warning "Clone of $aur_package failed (attempt $attempt/3), retrying in 10s..."
|
||||||
|
sleep 10
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
print_warning "Failed to clone $aur_package after 3 attempts: $(tail -n 1 "$clone_log")"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
sync_package() {
|
sync_package() {
|
||||||
local package="$1"
|
local package="$1"
|
||||||
local package_dir="$PKGBUILDS_DIR/$package"
|
local package_dir="$PKGBUILDS_DIR/$package"
|
||||||
@@ -310,10 +331,14 @@ sync_package() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
cd "$TEMP_DIR"
|
cd "$TEMP_DIR"
|
||||||
rm -rf "$aur_package"
|
|
||||||
|
|
||||||
if ! git clone "https://aur.archlinux.org/${aur_package}.git" "$aur_package" >/dev/null 2>&1; then
|
if ! clone_aur_package "$aur_package" "$TEMP_DIR/$aur_package"; then
|
||||||
print_warning "Failed to clone $aur_package (may not exist in AUR)"
|
((++FAILED))
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "$TEMP_DIR/$aur_package/PKGBUILD" ]]; then
|
||||||
|
print_warning "AUR repository for $aur_package is empty (package does not exist in AUR)"
|
||||||
((++FAILED))
|
((++FAILED))
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in new issue
Block a user