From 1576f105e00669db73b89ef9ac29a6cf033dc71c Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Wed, 14 May 2025 08:27:11 +0200 Subject: [PATCH] feat: able to lad config_file name from environement variable --- locale/fr/LC_MESSAGES/rougail_cli.po | 18 +++++++----- locale/rougail_cli.pot | 16 +++++++---- src/rougail/cli/__main__.py | 13 +++++++-- src/rougail/cli/config.py | 8 ++++-- .../cli/locale/fr/LC_MESSAGES/rougail_cli.mo | Bin 999 -> 1158 bytes tests/rougailcli_file/.rougailcli.yml | 7 +++++ tests/rougailcli_file/alt_rougailcli.yml | 7 +++++ tests/rougailcli_file/console.txt | 1 + tests/rougailcli_file/structures/file.yml | 4 +++ tests/rougailcli_file/yaml.txt | 1 + tests/test_load.py | 26 ++++++++++++++++++ 11 files changed, 83 insertions(+), 18 deletions(-) create mode 100644 tests/rougailcli_file/.rougailcli.yml create mode 100644 tests/rougailcli_file/alt_rougailcli.yml create mode 100644 tests/rougailcli_file/console.txt create mode 100644 tests/rougailcli_file/structures/file.yml create mode 100644 tests/rougailcli_file/yaml.txt diff --git a/locale/fr/LC_MESSAGES/rougail_cli.po b/locale/fr/LC_MESSAGES/rougail_cli.po index 61b3e32..800fee5 100644 --- a/locale/fr/LC_MESSAGES/rougail_cli.po +++ b/locale/fr/LC_MESSAGES/rougail_cli.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2025-05-12 08:44+0200\n" -"PO-Revision-Date: 2025-05-12 08:44+0200\n" +"POT-Creation-Date: 2025-05-14 08:22+0200\n" +"PO-Revision-Date: 2025-05-14 08:22+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -16,15 +16,15 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 3.5\n" -#: src/rougail/cli/__main__.py:151 +#: src/rougail/cli/__main__.py:170 msgid "cannot find \"user_data\" module \"{0}\"" msgstr "ne peut trouve le module \"user_data\" \"{0}\"" -#: src/rougail/cli/__main__.py:195 +#: src/rougail/cli/__main__.py:214 msgid "cannot find cli file for \"output_name\" module \"{0}\"" msgstr "ne peut trouve le fichier cli pour le module \"output_name\" \"{0}\"" -#: src/rougail/cli/__main__.py:221 +#: src/rougail/cli/__main__.py:240 msgid "ERROR: {0}" msgstr "ERREUR : {0}" @@ -37,11 +37,15 @@ msgid "Loads command line parameters from a file" msgstr "Charger les paramètres de la ligne de commande depuis un fichier" #: src/rougail/cli/config.py:39 -msgid "Display debug informations" +msgid "Displays debug informations" msgstr "Afficher les informations de debug" #: src/rougail/cli/config.py:43 -msgid "Display Rougail version and all componants" +msgid "Displays command line option warnings informations" +msgstr "Afficher les avertissements de chargement des options de la ligne de commande" + +#: src/rougail/cli/config.py:47 +msgid "Displays Rougail version and all its components" msgstr "Afficher la version de Rougail et de tous ces composants" #~ msgid "do not display debug informations" diff --git a/locale/rougail_cli.pot b/locale/rougail_cli.pot index 488892c..d192443 100644 --- a/locale/rougail_cli.pot +++ b/locale/rougail_cli.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2025-05-12 08:44+0200\n" +"POT-Creation-Date: 2025-05-14 08:25+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,15 +15,15 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: src/rougail/cli/__main__.py:151 +#: src/rougail/cli/__main__.py:170 msgid "cannot find \"user_data\" module \"{0}\"" msgstr "" -#: src/rougail/cli/__main__.py:195 +#: src/rougail/cli/__main__.py:214 msgid "cannot find cli file for \"output_name\" module \"{0}\"" msgstr "" -#: src/rougail/cli/__main__.py:221 +#: src/rougail/cli/__main__.py:240 msgid "ERROR: {0}" msgstr "" @@ -36,10 +36,14 @@ msgid "Loads command line parameters from a file" msgstr "" #: src/rougail/cli/config.py:39 -msgid "Display debug informations" +msgid "Displays debug informations" msgstr "" #: src/rougail/cli/config.py:43 -msgid "Display Rougail version and all componants" +msgid "Displays command line option warnings informations" +msgstr "" + +#: src/rougail/cli/config.py:47 +msgid "Displays Rougail version and all its components" msgstr "" diff --git a/src/rougail/cli/__main__.py b/src/rougail/cli/__main__.py index c877247..9e031f3 100644 --- a/src/rougail/cli/__main__.py +++ b/src/rougail/cli/__main__.py @@ -16,6 +16,7 @@ You should have received a copy of the GNU General Public License along with Mtools. If not, see . """ +import os from warnings import warn from pathlib import Path from sys import exit @@ -41,6 +42,9 @@ except ImportError: from .i18n import _ +ENV_PREFIX = "ROUGAILCLI" + + def _main(arguments, do_not_print): rougailconfig = get_rougail_config( backward_compatibility=False, add_extra_options=False @@ -57,7 +61,10 @@ def _main(arguments, do_not_print): } fake_user_datas = [] if RougailUserDataYaml: - config_file = cmd_config.forcepermissive.option("cli.config_file").value.get() + cli_config_file_key = f"{ENV_PREFIX}_CLI.CONFIG_FILE" + config_file = os.environ.pop(cli_config_file_key, None) + if not config_file: + config_file = cmd_config.forcepermissive.option("cli.config_file").value.get() if Path(config_file).is_file(): fake_rougail_config = { "step.user_data": "yaml", @@ -70,7 +77,7 @@ def _main(arguments, do_not_print): if RougailUserDataEnvironment: fake_rougail_config = { "step.user_data": "environment", - "environment.default_environment_name": "ROUGAILCLI", + "environment.default_environment_name": ENV_PREFIX, } fake_user_datas.extend( RougailUserDataEnvironment( @@ -89,7 +96,7 @@ def _main(arguments, do_not_print): parser.parse_args(arguments) if user_datas: user_data = UserDatas(cmd_config).user_datas(user_datas, user_datas_type="values") - if user_data["warnings"]: + if user_data["warnings"] and cmd_config.option("cli.warnings").value.get(): for warning in user_data["warnings"]: warn(warning) if user_data["errors"]: diff --git a/src/rougail/cli/config.py b/src/rougail/cli/config.py index 6c4564a..0310c73 100644 --- a/src/rougail/cli/config.py +++ b/src/rougail/cli/config.py @@ -36,11 +36,15 @@ cli: default: .rougailcli.yml debug: - description: {_('Display debug informations')} + description: {_('Displays debug informations')} default: false + warnings: + description: {_('Displays command line option warnings informations')} + default: true + versions: - description: {_('Display Rougail version and all componants')} + description: {_('Displays Rougail version and all its components')} default: false load_config: diff --git a/src/rougail/cli/locale/fr/LC_MESSAGES/rougail_cli.mo b/src/rougail/cli/locale/fr/LC_MESSAGES/rougail_cli.mo index e3fa0f92576cabdd19ab825ea47505094ae13cf7..0ae6d5c6065bbfbe1698e9306e38f09efa62e015 100644 GIT binary patch delta 391 zcmYMuPb&pc7zXh7+_{V^N?4)1Zc`2u#zb7sL?&-~7L&%gN$FIs1B>mCCs! Z^LKNcaPLSKX+6cvv90bJooXU@`304~PEh~= delta 249 zcmXZWzY76j7{Kx8&X04LE(