fix msm-plugin.c svace issue: make sure dupPath is not NULL before strchr()
[platform/upstream/rpm.git] / scripts / rpmdb_loadcvt
1 #!/bin/bash
2
3 ac=$#
4 cmd=`basename $0`
5
6 rpmdb=/var/lib/rpm
7 dbfiles="`/bin/ls -1 $rpmdb/*`"
8 dbdump=/usr/lib/rpm/rpmdb_dump
9 dbload=/usr/bin/db_load
10
11 set `$dbdump -V` || {
12     echo "The file $dbdump, usually in the rpm-devel package, is needed."
13     echo " Please install the rpm-devel package and retry $cmd."
14     exit 1
15 }
16 dumpfmt="${5%%:}"
17
18 set `$dbload -V` || {
19     echo "The file $dbload, usually in the db4-utils package, is needed."
20     echo " Please install the db4_utils package and retry $cmd."
21     exit 1
22 }
23 loadfmt="${5%%:}"
24
25 [ "$dumpfmt" = "$loadfmt" ] && {
26     echo "Both $dbdump and $dbload use db-$loadfmt format."
27     echo "No conversion is possible."
28     exit 0
29 }
30
31 [ "$ac" != "0" -o "`/usr/bin/id -u`" != "0" ] && {
32     echo "$cmd: Convert $rpmdb files to db-$loadfmt format."
33     echo "$cmd: Must be run as root, takes no arguments."
34     exit 1
35 }
36
37 echo "Converting to db-$loadfmt compatible format (1-10 minutes per file) ..."
38
39 dbfile=
40 trap "
41     [ -n "$dbfile" ] && {
42         [ -f $dbfile-O ] && /bin/mv $dbfile-O $dbfile
43         /bin/rm -f $dbfile-N
44     }
45     exit 1
46 " 1 2 3 15
47
48 rm -f $rpmdb/__db*
49
50 for dbfile in $dbfiles
51 do
52     echo " `/usr/bin/file $dbfile`"
53
54     $dbdump $dbfile | $dbload $dbfile-N || {
55         echo "Failed conversion:"
56         echo "    $dbdump $dbfile | $dbload $dbfile-N"
57         echo "Cleaning up and exiting ..."
58         /bin/rm -f $dbfile-N
59         exit 1
60     }
61
62     /bin/mv $dbfile $dbfile-O
63     /bin/mv $dbfile-N $dbfile
64     /bin/rm -f $dbfile-O
65 done
66
67 echo "Done!"
68
69 exit 0