#!/usr/bin/env python

import sys
import anydbm
import dohdbm as dbmod
import compressed_file_mod

def prefix(string, max_len):
	if string[max_len:]:
		return string[:max_len] + '...'
	else:
		return string

def display(key, value):
	sys.stdout.write('-> %-20s %s\n' % (prefix(key, 20), prefix(value, 1000)))

def main():
	compressed = False

	while sys.argv[1:] and sys.argv[1].startswith('--'):
		if sys.argv[1] == '--compressed':
			compressed = True
		elif sys.argv[1] == '--help':
			usage(0)
		else:
			sys.stderr.write('%s: Unrecognized option: %s\n' % (sys.argv[0], sys.argv[1]))
			usage(1)
		del sys.argv[1]

	for filename in sys.argv[1:]:
		try:
			if compressed:
				db = dbmod.open(filename, 'rb', backend_open=compressed_file_mod.Compressed_file)
			else:
				db = dbmod.open(filename, 'rb')
		except dbmod.error:
			sys.stderr.write('Error opening %s - continuing\n' % filename)
			continue
		for key in db.keys():
			value = db[key]
			display(key, value)
		db.close()

main()