X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=dbupgrade.sh;h=2d403b563ebdf05bddab1dbf5bc531a5c1bd83df;hb=64b1e365904f3ad2cd74c12d4955e3f1576857d8;hp=0f035b209559aa766b0d961a24e67a80a4a32bbe;hpb=f19018149ff7b99d2ee9efb890dced16108067a5;p=packages%2Frpm.git diff --git a/dbupgrade.sh b/dbupgrade.sh index 0f035b2..2d403b5 100755 --- a/dbupgrade.sh +++ b/dbupgrade.sh @@ -1,9 +1,18 @@ #!/bin/sh -if /usr/lib/rpm/bin/rpmdb_reset -r lsn /var/lib/rpm/Packages ; then - /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 || : -else +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 @@ -14,12 +23,14 @@ else echo " /bin/rm -f /var/lib/rpm/log/*" echo " /usr/lib/rpm/bin/dbconvert --rebuilddb" echo - exit -fi +else + /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 - echo - echo "rpm database conversion failed!" - echo "You have to run /usr/lib/rpm/bin/dbconvert manually" - echo + 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" + echo + fi fi