summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2003-03-01 20:23:39 +0000
committerjbj <devnull@localhost>2003-03-01 20:23:39 +0000
commitdd8e9be4ce4a9d98dea8df4eff7c1ccf1e038adf (patch)
treef79facb6b195870334e8e9dd1ac804ec9b2d2869 /scripts
parentf8cf4fc4a9f675d2a2d742c481ac52065b3c58cf (diff)
downloadrpm-dd8e9be4ce4a9d98dea8df4eff7c1ccf1e038adf.tar.gz
rpm-dd8e9be4ce4a9d98dea8df4eff7c1ccf1e038adf.tar.bz2
rpm-dd8e9be4ce4a9d98dea8df4eff7c1ccf1e038adf.zip
Sanity.
CVS patchset: 6641 CVS date: 2003/03/01 20:23:39
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am8
-rwxr-xr-xscripts/rpmdb_loadcvt69
2 files changed, 73 insertions, 4 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index bf71819e1..c62121293 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -9,8 +9,8 @@ EXTRA_DIST = \
find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
cpanflute cpanflute2 Specfile.pm find-provides.perl \
find-requires.perl get_magic.pl getpo.sh http.req \
- magic.prov magic.req perldeps.pl perl.prov perl.req rpmdiff \
- rpmdiff.cgi \
+ magic.prov magic.req perldeps.pl perl.prov perl.req \
+ rpmdb_loadcvt rpmdiff rpmdiff.cgi \
rpm.daily rpm.log rpm.xinetd rpm2cpio.sh \
sql.prov sql.req tcl.req tgpg trpm u_pkg.sh \
vpkg-provides.sh vpkg-provides2.sh \
@@ -29,8 +29,8 @@ config_SCRIPTS = \
find-debuginfo.sh find-lang.sh find-prov.pl find-req.pl \
cpanflute cpanflute2 Specfile.pm find-provides.perl \
find-requires.perl get_magic.pl getpo.sh http.req \
- magic.prov magic.req perldeps.pl perl.prov perl.req rpmdiff \
- rpmdiff.cgi \
+ magic.prov magic.req perldeps.pl perl.prov perl.req \
+ rpmdb_loadcvt rpmdiff rpmdiff.cgi \
rpm.daily rpm.log rpm.xinetd rpm2cpio.sh \
sql.prov sql.req tcl.req tgpg trpm u_pkg.sh \
vpkg-provides.sh vpkg-provides2.sh
diff --git a/scripts/rpmdb_loadcvt b/scripts/rpmdb_loadcvt
new file mode 100755
index 000000000..aa701065f
--- /dev/null
+++ b/scripts/rpmdb_loadcvt
@@ -0,0 +1,69 @@
+#!/bin/bash
+
+ac=$#
+cmd=`basename $0`
+
+rpmdb=/var/lib/rpm
+dbfiles="`/bin/ls -1 $rpmdb/*`"
+dbdump=/usr/lib/rpm/rpmdb_dump
+dbload=/usr/bin/db_load
+
+set `$dbdump -V` || {
+ echo "The file $dbdump, usually in the rpm-devel package, is needed."
+ echo " Please install the rpm-devel package and retry $cmd."
+ exit 1
+}
+dumpfmt="${5%%:}"
+
+set `$dbload -V` || {
+ echo "The file $dbload, usually in the db4-utils package, is needed."
+ echo " Please install the db4_utils package and retry $cmd."
+ exit 1
+}
+loadfmt="${5%%:}"
+
+[ "$dumpfmt" = "$loadfmt" ] && {
+ echo "Both $dbdump and $dbload use db-$loadfmt format."
+ echo "No conversion is possible."
+ exit 0
+}
+
+[ "$ac" != "0" -o "`/usr/bin/id -u`" != "0" ] && {
+ echo "$cmd: Convert $rpmdb files to db-$loadfmt format."
+ echo "$cmd: Must be run as root, takes no arguments."
+ exit 1
+}
+
+echo "Converting to db-$loadfmt compatible format (1-10 minutes per file) ..."
+
+dbfile=
+trap "
+ [ -n "$dbfile" ] && {
+ [ -f $dbfile-O ] && /bin/mv $dbfile-O $dbfile
+ /bin/rm -f $dbfile-N
+ }
+ exit 1
+" 1 2 3 15
+
+rm -f $rpmdb/__db*
+
+for dbfile in $dbfiles
+do
+ echo " `/usr/bin/file $dbfile`"
+
+ $dbdump $dbfile | $dbload $dbfile-N || {
+ echo "Failed conversion:"
+ echo " $dbdump $dbfile | $dbload $dbfile-N"
+ echo "Cleaning up and exiting ..."
+ /bin/rm -f $dbfile-N
+ exit 1
+ }
+
+ /bin/mv $dbfile $dbfile-O
+ /bin/mv $dbfile-N $dbfile
+ /bin/rm -f $dbfile-O
+done
+
+echo "Done!"
+
+exit 0