2025-02-17 11:17:23 +01:00
|
|
|
"""
|
|
|
|
|
Silique (https://www.silique.fr)
|
|
|
|
|
Copyright (C) 2025
|
|
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify it
|
|
|
|
|
under the terms of the GNU Lesser General Public License as published by the
|
|
|
|
|
Free Software Foundation, either version 3 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 Lesser General Public License for more
|
|
|
|
|
details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
|
|
from .i18n import _
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_rougail_config(
|
|
|
|
|
*,
|
|
|
|
|
backward_compatibility: bool = True, # pylint: disable=unused-argument
|
|
|
|
|
) -> dict:
|
|
|
|
|
options = f"""
|
|
|
|
|
cli:
|
2025-03-31 16:38:01 +02:00
|
|
|
description: {_('Command line options')}
|
2025-03-31 09:30:29 +02:00
|
|
|
|
|
|
|
|
config_file:
|
2025-05-09 07:45:42 +02:00
|
|
|
description: {_('Loads command line parameters from a file')}
|
2025-03-31 09:30:29 +02:00
|
|
|
type: unix_filename
|
|
|
|
|
commandline: false
|
|
|
|
|
params:
|
|
|
|
|
allow_relative: true
|
2025-12-19 19:02:47 +01:00
|
|
|
default:
|
|
|
|
|
- .rougailcli.yml
|
2025-03-31 09:30:29 +02:00
|
|
|
|
2025-09-29 12:16:49 +02:00
|
|
|
debug: false # {_('Displays debug informations')}
|
2025-04-09 21:22:41 +02:00
|
|
|
|
2025-09-29 12:16:49 +02:00
|
|
|
warnings: true # {_('Displays command line option warnings informations')}
|
2025-05-14 08:27:11 +02:00
|
|
|
|
2025-09-29 12:16:49 +02:00
|
|
|
versions: false # {_('Displays Rougail version and all its components')}
|
2025-05-02 08:09:14 +02:00
|
|
|
|
2025-12-22 15:32:21 +01:00
|
|
|
invalid_user_data_error: false # {_("Invalid value in user data is not allowed")}
|
2025-11-06 06:32:13 +01:00
|
|
|
|
2025-12-22 15:32:21 +01:00
|
|
|
unknown_user_data_error: false # {_("Unknown variable in user data is not allowed")}
|
2025-11-06 06:32:13 +01:00
|
|
|
|
2025-11-02 18:44:17 +01:00
|
|
|
layers:
|
2025-12-22 15:32:21 +01:00
|
|
|
description: {_('Open each user data in separate layers')}
|
2025-11-02 18:44:17 +01:00
|
|
|
default: false
|
|
|
|
|
hidden:
|
|
|
|
|
jinja: |-
|
|
|
|
|
{{{{ __.step.user_data is propertyerror or __.step.user_data | length < 2 }}}}
|
|
|
|
|
return_type: boolean
|
2025-12-22 15:32:21 +01:00
|
|
|
description: {_('if only one user data is set in "__.step.user_data"')}
|
2025-11-02 18:44:17 +01:00
|
|
|
|
2025-05-02 08:09:14 +02:00
|
|
|
load_config:
|
|
|
|
|
default: true
|
|
|
|
|
hidden: true
|
2025-09-29 12:16:49 +02:00
|
|
|
|
|
|
|
|
read_write: false # {_('Configuration in output step is in read_write mode')}
|
2025-11-21 08:18:15 +01:00
|
|
|
|
2025-12-19 19:02:47 +01:00
|
|
|
description_type:
|
|
|
|
|
description: {_('Type of variables description')}
|
|
|
|
|
help: >-
|
|
|
|
|
{_("""To identify different variables, we use the variable description. There are four types of description:
|
|
|
|
|
|
2025-12-29 20:39:55 +01:00
|
|
|
- path_and_description: which contains the variable path followed by its description
|
2025-12-19 19:02:47 +01:00
|
|
|
- name_and_description: which contains the variable name followed by its description
|
|
|
|
|
- path: the variable's path
|
|
|
|
|
- name: the variable name
|
|
|
|
|
- description: the variable's description""")}
|
|
|
|
|
choices:
|
2025-12-29 20:39:55 +01:00
|
|
|
- path_and_description
|
2025-12-19 19:02:47 +01:00
|
|
|
- name_and_description
|
|
|
|
|
- path
|
|
|
|
|
- name
|
|
|
|
|
- description
|
|
|
|
|
default: description
|
|
|
|
|
|
2025-11-21 08:18:15 +01:00
|
|
|
inaccessible_read_write_modes:
|
|
|
|
|
description: {_('Modes that should not be accessible in read_write mode')}
|
|
|
|
|
multi: true
|
|
|
|
|
mandatory: false
|
|
|
|
|
disabled:
|
|
|
|
|
jinja: |
|
2025-12-22 15:32:21 +01:00
|
|
|
{{{{ not modes_level }}}}
|
|
|
|
|
return_type: boolean
|
|
|
|
|
description: {_('if any mode is set in "modes_level"')}
|
2025-11-21 08:18:15 +01:00
|
|
|
validators:
|
|
|
|
|
- type: jinja
|
|
|
|
|
jinja: |
|
|
|
|
|
{{% if _.inaccessible_read_write_modes not in modes_level %}}
|
|
|
|
|
not in modes_level ({{modes_level}})
|
|
|
|
|
{{% endif %}}
|
2025-12-22 15:32:21 +01:00
|
|
|
description: {_('mode must exists in "modes_level"')}
|
2025-11-21 08:18:15 +01:00
|
|
|
|
|
|
|
|
inaccessible_modes:
|
|
|
|
|
description: {_('Modes that should not be accessible')}
|
|
|
|
|
multi: true
|
|
|
|
|
mandatory: false
|
|
|
|
|
disabled:
|
|
|
|
|
jinja: |
|
2025-12-22 15:32:21 +01:00
|
|
|
{{{{ not modes_level }}}}
|
|
|
|
|
return_type: boolean
|
|
|
|
|
description: {_('if any mode is set in "modes_level"')}
|
2025-11-21 08:18:15 +01:00
|
|
|
validators:
|
|
|
|
|
- type: jinja
|
|
|
|
|
jinja: |
|
|
|
|
|
{{% if _.inaccessible_modes not in modes_level %}}
|
|
|
|
|
not in modes_level ({{modes_level}})
|
|
|
|
|
{{% endif %}}
|
2025-12-22 15:32:21 +01:00
|
|
|
description: {_('mode must exists in "modes_level"')}
|
2025-02-17 11:17:23 +01:00
|
|
|
"""
|
|
|
|
|
return {
|
|
|
|
|
"options": options,
|
|
|
|
|
"process": None,
|
|
|
|
|
}
|