from optparse import OptionParser
import dbm
import sys
def main():
parser = OptionParser()
parser.add_option("-f", "--file", type="string", dest="file")
parser.add_option("-d", "--delete", type="string", dest="delete")
parser.add_option("-a", "--add", type="string", dest="add")
parser.add_option("-e", "--edit", type="string", dest="add")
parser.add_option("-b", "--borrowed", action="store_true", dest="borrowed", default=False)
parser.add_option("-v", "--verbose", action="store_true", dest="verbose", default=False)
parser.add_option("-p", "--print", action="store_true", dest="display", default=False)
(options, args) = parser.parse_args()
if not options.file:
if options.verbose:
print "No file specified"
sys.exit(1)
try:
db = dbm.open(options.file, "c")
except:
if options.verbose:
print "Cannot open file %s." % options.file
sys.exit(1)
try:
if options.display:
for title in db.keys():
if options.borrowed:
tracks, author, whohas = eval(db[title])
if whohas:
print "Author: %s, Title: %s. Wypozyczone przez: %s." % (author, title, whohas)
else:
tracks, author, whohas = eval(db[title])
print "Author: %s, Title: %s" % (author, title)
for n,i in enumerate(tracks.split("\\n")):
print "\t%02d. %s" % (n+1, i)
if whohas:
print "Wypozyczone przez %s" % whohas
sys.exit(0)
if options.add:
vals = (title, tracks, author, whohas) = options.add.split(";")
if options.verbose:
print "Adding: ", vals
db[title] = repr((tracks, author, whohas))
sys.exit(0)
if options.delete:
try:
del db[options.delete]
if options.verbose:
print "deleted %s" % options.delete
except:
if options.verbose:
print "%s nonexistent" % options.delete
sys.exit(0)
except:
if options.verbose:
print "An exception occured"
sys.exit(1)
label .end
if __name__ == "__main__":
main()