ansible/roles/packages/files/sync-yum

34 lines
921 B
Bash

#!/bin/bash
LOCKFILE=/var/cache/fedoracommunity/fedora-packages-yum.lock
rebuild=$(cat <<"EOF"
echo 'Trying makecache.'
/usr/bin/yum makecache -c /etc/fedoracommunity/yum-repo.conf --enablerepo=*
echo 'Releasing $LOCKFILE'
EOF
)
nuke_and_rebuild=$(cat <<"EOF"
echo 'Nuking.'
rm /var/cache/fedoracommunity/packages/tmp/var/lib/rpm/__db.*
/usr/bin/rpmdb --root=/var/cache/fedoracommunity/packages/tmp/var/lib/rpm --rebuilddb
echo 'Trying makecache again now.'
/usr/bin/yum makecache -c /etc/fedoracommunity/yum-repo.conf --enablerepo=*
echo 'Releasing $LOCKFILE'
EOF
)
echo "Acquiring $LOCKFILE..."
flock $LOCKFILE -c "$rebuild"
# If it failed, then try to nuke and rebuild the rpmdb first.
if [ $? -eq 1 ] ; then
echo 'makecache failed... sleeping for 10 seconds.'
sleep 10
echo 'Waking. Now trying to rebuild the rpmdb.'
echo "Acquiring $LOCKFILE..."
flock $LOCKFILE -c "$nuke_and_rebuild"
fi