"""Fichier de création des commandes geonatureCe module ne doit en aucun cas faire appel à des models ou au coeur de geonaturedans les imports d'entête de fichier pour garantir un bon fonctionnement des fonctionsd'administration de l'application GeoNature (génération des fichiers de configuration, desfichiers de routing du frontend etc...). Ces dernières doivent pouvoir fonctionner même siun paquet PIP du requirement GeoNature n'a pas été bien installé"""importosimportjsonfromsubprocessimportrun,DEVNULLfromcontextlibimportnullcontextfromjinja2importTemplatefromgeonatureimportcreate_appfromgeonature.utils.envimportFRONTEND_DIRfromgeonature.utils.configimportconfig_frontendfromgeonature.utils.moduleimportget_dist_from_code,get_module_config__all__=["run","create_frontend_module_config","nvm_available","install_frontend_dependencies","build_frontend",]
[docs]defcreate_frontend_module_config(module_code,output_file=None):""" Create the frontend config """module_frontend_dir=FRONTEND_DIR/"external_modules"/module_code.lower()# for modules without frontend or with disabled frontendifnotmodule_frontend_dir.exists():returnmodule_config=get_module_config(get_dist_from_code(module_code.upper()))ifoutput_fileisNone:output_file=(module_frontend_dir/"app/module.config.ts").open("w")else:output_file=nullcontext(output_file)withoutput_fileasf:f.write("export const ModuleConfig = ")json.dump(module_config,f,indent=True,sort_keys=True)