""" Config file for Rougail-user-data-environment Silique (https://www.silique.fr) Copyright (C) 2024-2025 distribued with GPL-2 or later license This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ from .i18n import _ def get_rougail_config( *, backward_compatibility=True, ) -> dict: options = f""" environment: description: {_("Load environment variables")} help: |- {_('Variable values can be defined directly from an environment variable.')} {_('Environnement variable names begin with a prefix (by default ROUGAIL_) followed by the variable path in uppercase, for example: ROUGAIL_MY_VARIABLE. If you are using namespaces, the prefix is the name of the namespace in uppercase.')} {_('Note that variable paths can contain ("."), which are not permitted everywhere. To avoid any issues, use the `env` command, for example: `env ROUGAIL_MY_FAMILY.MY_VARIABLE=1 rougail`')} {_('For values, there is no difference between a number and a letter (they can be enclosed in quotes or not). However, booleans are True or False. The separator for multiple variables is a comma.')} disabled: jinja: | {{{{ _.step.user_data is propertyerror or 'environment' not in _.step.user_data }}}} return_type: boolean description: {_('if environment is not set in "step.user_data"')} default_environment_name: description: {_("Name of the default environment prefix")} default: ROUGAIL validators: - jinja: |- {{{{ _.default_environment_name | upper != _.default_environment_name }}}} return_type: boolean description: {_("should only use uppercase character")} disabled: variable: __.main_namespace when_not: null custom_separator: description: {_('Replace the separator character "." in path by an other')} help: {_('The "." character could be not allowed in path name')} mandatory: false with_secrets: description: {_("Environnement variables may contain secrets")} default: true """ return { "name": "environment", "process": "user data", "options": options, "level": 50, } __all__ = ("get_rougail_config",)