def main(schema=None, output_dir=None, config_path=None): """ Validate the schema file and output directory parameters. Build a tree from the schema file. Walk the tree, calling the registered callbacks on each node. """ validator = Validator(schema, output_dir=output_dir) if not validator.validate(): click.echo(validator.error['msg']) sys.exit(1) directory_tree = Tree( indent_size = validator.indent_size, output_dir = output_dir, base_path = os.path.abspath(os.curdir) ) directory_tree.load_data(schema) directory_tree.build_tree() callbacks = [ pprint_node ] if config_path: process_hooks = make_config_processor(config_path) callbacks.append(process_hooks) directory_tree.walk(callbacks=callbacks)