#!/usr/bin/env python
import argparse
from xym import xym

def run():
	parser = argparse.ArgumentParser(description='Extracts one or more YANG'
			'models from an IETF RFC or draft text file')
	parser.add_argument("source",
		help="The URL or file name of the RFC/draft text from which to get the model")
	parser.add_argument("--srcdir",
		default='.',
		help="Optional: directory where to find the source text; default is './'")
	parser.add_argument("--dstdir",
		default='.',
		help="Optional: directory where to put the extracted YANG module(s); default is './'")
	parser.add_argument("--strict",
		type=bool,
		default=False,
		help='Optional flag that determines syntax enforcement; '
		"'If set to 'True', the <CODE BEGINS> / <CODE ENDS> "
		"tags are required; default is 'False'")
	parser.add_argument("--strict-examples",
    	action='store_true',
    	default=False,
    	help="Only output valid examples when in strict mode")
	parser.add_argument("--debug",
		type=int,
		default=0,
		help="Optional: debug level - determines the amount of debug "
		"info printed to console; default is 0 (no debug info printed)")
	parser.add_argument("--version",
		action='version',
		version='%(prog)s {version}'.format(version=xym.__version__))

	args = parser.parse_args()

	extracted_models = xym.xym(args.source,
                           args.srcdir,
                           args.dstdir,
                           args.strict,
                           args.strict_examples,
                           args.debug)
	if len(extracted_models) > 0:
		if args.strict:
			print("Created the following models that conform to the strict guidelines:")
		else:
			print("Created the following models:")
		for em in extracted_models:
			print('   %s' % em)
	else:
		print('No models created.')

if __name__ == '__main__':
	run()

