From 1bac78fbc3fa32384dcc73537daff85ece1c4e9a Mon Sep 17 00:00:00 2001 From: Roland Dobai Date: Tue, 3 Jan 2023 18:03:51 +0100 Subject: [PATCH] Tools: Improve idf.py error message when the argument value collides with the environment variable Closes https://github.com/espressif/esp-idf/issues/10475 --- tools/idf.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/tools/idf.py b/tools/idf.py index cba92076e0..6389a8c36a 100755 --- a/tools/idf.py +++ b/tools/idf.py @@ -559,9 +559,14 @@ def init_cli(verbose_output=None): default = () if option.multiple else option.default if global_value != default and local_value != default and global_value != local_value: - raise FatalError( - 'Option "%s" provided for "%s" is already defined to a different value. ' - 'This option can appear at most once in the command line.' % (key, task.name)) + if hasattr(option, 'envvar') and option.envvar and os.getenv(option.envvar) != default: + msg = (f'This option cannot be set in command line if the {option.envvar} ' + 'environment variable is set to a different value.') + else: + msg = 'This option can appear at most once in the command line.' + + raise FatalError(f'Option "{key}" provided for "{task.name}" is already defined to ' + f'a different value. {msg}') if local_value != default: global_args[key] = local_value