#!/usr/bin/python
#
# Script to do exactly the same as rpm --rebuilddb but only with our python
# stuff.
#


import sys, os.path, getopt, errno
from bsddb import hashopen, btopen
from binascii import a2b_hex
from struct import unpack

PYRPMDIR = "/usr/share/pyrpm"
if not PYRPMDIR in sys.path:
    sys.path.append(PYRPMDIR)
from pyrpm import __version__
from pyrpm import *


def usage():
    print """
pyrpmrebuilddb [-h, --help] [-v, --verbose] [--dbpath=] [newdbpath]

--help:        This usage ;)
-v, --verbose: Increase verbosity. Default is pretty silent.
--dbpath:      Specifies a different path for the rpmdb. Default is /var/lib/rpm
newdbpath:     Optional path for new rpmdb. Default is ./rpmdb
"""

def main():
    # Default dbpath is /var/lib/rpm
    dbpath = "/var/lib/rpm"
    verbose = 2

    # Argument parsing
    try:
      opts, args = getopt.getopt(sys.argv[1:], "?vh",
        ["help", "verbose", "dbpath="])
    except getopt.error, e:
        print "Error parsing command list arguments: %s" % e
        usage()
        return 0

    # Argument handling
    for (opt, val) in opts:
        if opt in ("-h", "--help"):
            usage()
            return 1
        elif opt == "--dbpath":
            dbpath = val
        elif opt in ("-v", "--verbose"):
            verbose += 1

    spydb = database.getRpmDB(rpmconfig, dbpath,
                              rpmconfig.buildroot)
    spydb.read()

    if len(args) == 0:
        outdbpath = "./rpmdb"
    else:
        outdbpath = args[0]

    tpydb = database.getRpmDB(rpmconfig, outdbpath,
                              rpmconfig.buildroot)
    for pkg in spydb.getPkgs():
        tpydb.addPkg(pkg)

    return 1

if __name__ == "__main__":
    if not run_main(main):
        sys.exit(1)

# vim:ts=4:sw=4:showmatch:expandtab
