X-Git-Url: http://git.pld-linux.org/?p=packages%2Frpm.git;a=blobdiff_plain;f=dbupgrade.sh;h=2d403b563ebdf05bddab1dbf5bc531a5c1bd83df;hp=52c073af9c15cd9e638e0573e70ecb55f58539f7;hb=64b1e365904f3ad2cd74c12d4955e3f1576857d8;hpb=d076ae46506d528cdc13ef61c08bfcafb0ec7844 diff --git a/dbupgrade.sh b/dbupgrade.sh index 52c073a..2d403b5 100755 --- a/dbupgrade.sh +++ b/dbupgrade.sh @@ -1,6 +1,18 @@ #!/bin/sh -if ! /usr/lib/rpm/bin/rpmdb_reset -r lsn /var/lib/rpm/Packages ; then +ROOTDIR= +if [ "$1" = "-r" ]; then + shift + ROOTDIR="$1" + + if [ ! -d "$ROOTDIR" ]; then + echo "Specified root directory ($ROOTDIR) does not exist!" + echo "Bailing out!" + exit + fi +fi + +if ! /usr/lib/rpm/bin/rpmdb_reset -r lsn "$ROOTDIR"/var/lib/rpm/Packages ; then echo echo "rpm database conversion failed!" echo @@ -12,10 +24,10 @@ if ! /usr/lib/rpm/bin/rpmdb_reset -r lsn /var/lib/rpm/Packages ; then echo " /usr/lib/rpm/bin/dbconvert --rebuilddb" echo else - /bin/rm --interactive=never -f /var/lib/rpm/__db.00* >/dev/null 2>/dev/null || : - /bin/rm --interactive=never -f /var/lib/rpm/log/* >/dev/null 2>/dev/null || : + /bin/rm --interactive=never -f "$ROOTDIR"/var/lib/rpm/__db.00* >/dev/null 2>/dev/null || : + /bin/rm --interactive=never -f "$ROOTDIR"/var/lib/rpm/log/* >/dev/null 2>/dev/null || : - if ! /usr/lib/rpm/bin/dbconvert --rebuilddb; then + if ! /usr/lib/rpm/bin/dbconvert --rebuilddb ${ROOTDIR:+--root="$ROOTDIR"}; then echo echo "rpm database conversion failed!" echo "You have to run /usr/lib/rpm/bin/dbconvert manually"