#!/usr/bin/python2.6

import locale
import sys
import traceback

from bugz.cli import BugzError, PrettyBugz
from bugz.clparser import make_parser, get_kwds

def main():
	parser = make_parser()

	# parse options
	args = parser.parse_args()
	(bugz_kwds, cmd_kwds) = get_kwds(args)

	try:
		bugz = PrettyBugz(**bugz_kwds)
		args.func(bugz, **cmd_kwds)

	except BugzError, e:
		print ' ! Error: %s' % e
		sys.exit(-1)

	except TypeError, e:
		print ' ! Error: Incorrect number of arguments supplied'
		print
		traceback.print_exc()
		sys.exit(-1)

	except RuntimeError, e:
		print ' ! Error: %s' % e
		sys.exit(-1)

	except KeyboardInterrupt:
		print
		print 'Stopped.'
		sys.exit(-1)

	except:
		raise

if __name__ == "__main__":
	main()
