import sys


def main(args=None):
	if args is None:
		args = sys.argv[1:]

	# TODO Handle library-wide options. Eg.:
	# --unicodedata
	# --verbose / other logging stuff

	# TODO Allow a way to run arbitrary modules? Useful for setting
	# library-wide options and calling another library. Eg.:
	#
	#   $ fonttools --unicodedata=... fontmake ...
	#
	# This allows for a git-like command where thirdparty commands
	# can be added.  Should we just try importing the fonttools
	# module first and try without if it fails?

	if len(sys.argv) < 2:
		sys.argv.append("help")
	if sys.argv[1] == "-h" or sys.argv[1] == "--help":
		sys.argv[1] = "help"
	mod = 'fontTools.'+sys.argv[1]
	sys.argv[1] = sys.argv[0] + ' ' + sys.argv[1]
	del sys.argv[0]

	import runpy
	runpy.run_module(mod, run_name='__main__')


if __name__ == '__main__':
	sys.exit(main())
