"""
Config yaml for Rougail-user-data

Silique (https://www.silique.fr)
Copyright (C) 2024-2026

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=True,
) -> dict:
    options = f"""
yaml:
  description: {_("Load user data from YAML file")}
  help: {_("Variable values can be defined in a list of YAML files.")}
  disabled:
    jinja: >-
      {{{{ step.user_data is propertyerror or 'yaml' not in step.user_data }}}}
    return_type: boolean
    description: {_('if yaml is not set in "step.user_data"')}

  filename:
    description: {_("File or directory names where user data are stored")}
    help: {_('If a directory is set, all files with "yml" ou "yaml" extension will be load with alphanum order.')}
    alternative_name: yf
    type: unix_filename
    multi: true
    params:
       allow_relative: True
       test_existence: True

  file_with_secrets:
    description: {_("File that may contain secrets")}
    help: {_('By default, all files can contain secrets. It might be useful to define more precisely which files can contain these secrets.')}
    default: all
    choices:
      - all
      - first
      - last
      - none
"""
    return {
        "name": "yaml",
        "process": "user data",
        "options": options,
        "level": 50,
    }


__all__ = "get_rougail_config"
