def main()

in uberpoet/genproj.py [0:0]


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

        logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(funcName)s: %(message)s')
        start = time.time()

        args = self.make_args(args)

        graph_config = commandlineutil.AppGenerationConfig()
        graph_config.pull_from_args(args)
        app_node, node_list = commandlineutil.gen_graph(args.gen_type, graph_config)

        if args.print_dependency_graph:
            print_nodes(node_list)
            exit(0)

        commandlineutil.del_old_output_dir(args.output_directory)
        gen = project_generator_for_arg(args)

        logging.info("Project Generator type: %s", args.project_generator_type)
        logging.info("Generation type: %s", args.gen_type)
        logging.info("Creating a {} module count mock app in {}".format(len(node_list), args.output_directory))
        logging.info("Example command to generate Xcode workspace: $ {}".format(gen.example_command()))

        gen.gen_app(app_node, node_list, graph_config.swift_lines_of_code, graph_config.objc_lines_of_code,
                    graph_config.loc_json_file_path)

        fin = time.time()
        logging.info("Done in %f s", fin - start)

        project_info = {
            "generator_type": args.project_generator_type,
            "graph_config": args.gen_type,
            "options": {
                "use_wmo": bool(args.use_wmo),
                "use_dynamic_linking": bool(args.use_dynamic_linking),
                "swift_lines_of_code": args.swift_lines_of_code,
                "objc_lines_of_code": args.objc_lines_of_code
            },
            "time_to_generate": fin - start
        }
        with open(join(args.output_directory, "project_info.json"), "w") as project_info_json_file:
            json.dump(project_info, project_info_json_file)