rougail-user-data-environment/src/rougail/user_data_environment/config.py
2025-12-29 12:59:13 +01:00

78 lines
2.7 KiB
Python

"""
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",)