#!/usr/bin/env python

usage = \
"""
usage: marcup [options] [command] [arguments]

  Options:
  --storage : location of persistent storage, default is store.db

  Commands:
  load file : load a file into storage and print out a load report
  dump : dump the contents of a marc datastore as MARC21 to stdout

"""

import sys
import logging
import optparse

import marcup

parser = optparse.OptionParser()
parser.add_option('-s', '--storage', action='store', dest='dbfile', 
                  default='store.db', help='storage location')
options, args = parser.parse_args()

if len(args) == 0:
    parser.error("must supply command, `marcup help` for details") 

# send info messages and above to stderr
logging.basicConfig()
handler = logging.StreamHandler()
formatter =  logging.Formatter("%(asctime)s %(levelname)s] %(message)s")
handler.setFormatter(formatter)
logger = logging.getLogger()
logger.addHandler(handler)
logger.setLevel(logging.INFO)

# figure out what command to run, and run it
cmd = args[0]
if cmd == "help":
    print usage
elif cmd == "load":
    if len(args) != 2:
        parser.error("must supply a file to load")
    store = marcup.Store(options.dbfile)
    report = store.load(args[1])
    print report
elif cmd == "dump":
    store = marcup.Store(options.dbfile)
    store.dump()
else:
    parser.error("unknown command: %s" % cmd)

logger.removeHandler(handler)

