def METHOD_NAME():
    parser = argparse.ArgumentParser(description="Make an EFI boot image from the given directory.")
    parser.add_argument("--debug", action="store_const", const=logging.DEBUG,
        dest="loglevel", default=log.getEffectiveLevel(),
        help="print debugging info")
    parser.add_argument("-d", "--disk", action="store_true",
        help="make a full EFI disk image (including partition table)")
    parser.add_argument("-a", "--apple", action="store_const", const="apple",
        dest="imgtype", default="default",
        help="make an Apple EFI image (use hfs+, bless bootloader)")
    parser.add_argument("-l", "--label", default="EFI",
        help="filesystem label to use (default: %(default)s)")
    parser.add_argument("-i", "--icon", metavar="ICONFILE",
        help="icon file to include (for Apple EFI image)")
    parser.add_argument("-n", "--diskname", metavar="DISKNAME",
        help="disk name image to include (for Apple EFI image)")
    parser.add_argument("-p", "--product", metavar="PRODUCT",
        help="product name to use (for Apple EFI image)")
    parser.add_argument("bootdir", metavar="EFIBOOTDIR",
        help="input directory (will become /EFI/BOOT in the image)")
    parser.add_argument("outfile", metavar="OUTPUTFILE",
        help="output file to write")
    opt = parser.parse_args()
    # logging
    log.setLevel(opt.loglevel)
    # sanity checks
    if not os.path.isdir(opt.bootdir):
        parser.error("%s is not a directory" % opt.bootdir)
    if os.getuid() > 0:
        parser.error("need root permissions")
    if opt.icon and not opt.imgtype == "apple":
        print("Warning: --icon is only useful for Apple EFI images")
    if opt.diskname and not opt.imgtype == "apple":
        print("Warning: --diskname is only useful for Apple EFI images")
    log.debug(opt)
    # do the thing!
    if opt.imgtype == "apple":
        mkmacboot(opt.bootdir, opt.outfile, opt.label, opt.icon, opt.product,
                  opt.diskname)
    else:
        mkefiboot(opt.bootdir, opt.outfile, opt.label)
    if opt.disk:
        efiboot = tempfile.NamedTemporaryFile(prefix="mkefiboot.").name
        shutil.move(opt.outfile, efiboot)
        mkefidisk(efiboot, opt.outfile)