#!/usr/bin/env python3

import os
import envtpl
import sys
from mflog import get_logger
from mfplugin.manager import PluginsManager

LOGGER = get_logger("__make_nginx_conf")
manager = PluginsManager()


plugin_confs = []
if len(sys.argv) == 2:
    p = manager.make_plugin(sys.argv[1])
    plugins = [p]
else:
    plugins = manager.plugins.values()
for plugin in plugins:
    try:
        plugin.load_full()
    except Exception as e:
        LOGGER.warning("invalid plugin: %s (%s) => ignoring it ; details: %s" %
                       (plugin.name, plugin.home, e))
        continue
    plugin_confs.append(plugin)

nginx_conf_file = os.path.join(os.environ['MFMODULE_HOME'], 'config',
                               'nginx.conf')

with open(nginx_conf_file, "r") as f:
    extra_variables = {
        "PLUGINS": plugin_confs
    }
    content = envtpl.render_string(f.read(), extra_variables=extra_variables,
                                   keep_multi_blank_lines=False)

print(content)
