docs: def main():
      """
      program entry point
      """
      parser = create_parser()
      options = vars(parser.parse_args())
      HASH_STORE.IGNORE_CACHE_FILE = options[constants.LABEL_FORCE]
      moban_file = options[constants.LABEL_MOBANFILE]
      load_engine_factory_and_engines()  # Error: jinja2 if removed
      if moban_file is None:
          moban_file = mobanfile.find_default_moban_file()
      if moban_file:
          try:
              count = handle_moban_file(moban_file, options)
              moban_exit(options[constants.LABEL_EXIT_CODE], count)
          except (
              exceptions.DirectoryNotFound,
              exceptions.NoThirdPartyEngine,
              exceptions.MobanfileGrammarException,
          ) as e:
              reporter.report_error_message(str(e))
              moban_exit(options[constants.LABEL_EXIT_CODE], constants.ERROR)
      else:
          try:
              count = handle_command_line(options)
              moban_exit(options[constants.LABEL_EXIT_CODE], count)
          except exceptions.NoTemplate as e:
              reporter.report_error_message(str(e))
              moban_exit(options[constants.LABEL_EXIT_CODE], constants.ERROR)