def METHOD_NAME():
    """ Main function. """
    gettext.textdomain('plainbox-provider-manifest')
    gettext.bindtextdomain('plainbox-provider-manifest',
                           os.getenv('PLAINBOX_PROVIDER_LOCALE_DIR'))
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '-m', '--manifest', metavar='PATH',
        default='/var/tmp/checkbox-ng/machine-manifest.json',
        help=_('Path to alternate machine manifest'))
    args = parser.parse_args()
    if os.path.isfile(args.manifest):
        print(_("Loading existing manifest from {}").format(args.manifest))
        with open(args.manifest, 'rt', encoding='UTF-8') as stream:
            manifest = json.load(stream)
    else:
        manifest = {}
    all_providers.load()
    provider_list = all_providers.get_all_plugin_objects()
    changes = collect_console(manifest, provider_list)
    if changes:
        print(_("Saving manifest to {}").format(args.manifest))
        os.makedirs(os.path.dirname(args.manifest), exist_ok=True)
        with open(args.manifest, 'wt', encoding='UTF-8') as stream:
            json.dump(manifest, stream, sort_keys=True, indent=2)
    else:
        print(_("No changes to the manifest are required"))