Skip to content

Commit

Permalink
cmd_runner - handle special value "auto" in param force_lang (ansible…
Browse files Browse the repository at this point in the history
…-collections#8517)

* cmd_runner - handle special value "auto" in param force_lang

* add changelog frag

* update doc in puppet

* fix markup
  • Loading branch information
russoz authored and Massl123 committed Feb 7, 2025
1 parent 964b1fc commit 1fc31c9
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelogs/fragments/8517-cmd-runner-lang-auto.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
minor_changes:
- CmdRunner module utils - the parameter ``force_lang`` now supports the special value ``auto`` which will automatically try and determine the best parsable locale in the system (https://github.com/ansible-collections/community.general/pull/8517).
9 changes: 8 additions & 1 deletion plugins/module_utils/cmd_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

from ansible.module_utils.common.collections import is_sequence
from ansible.module_utils.six import iteritems
from ansible.module_utils.common.locale import get_best_parsable_locale


def _ensure_list(value):
Expand Down Expand Up @@ -236,7 +237,13 @@ def __init__(self, module, command, arg_formats=None, default_args_order=(),
fmt = _Format.as_func(func=fmt, ignore_none=True)
self.arg_formats[fmt_name] = fmt
self.check_rc = check_rc
self.force_lang = force_lang
if force_lang == "auto":
try:
self.force_lang = get_best_parsable_locale()
except RuntimeWarning:
self.force_lang = "C"
else:
self.force_lang = force_lang
self.path_prefix = path_prefix
if environ_update is None:
environ_update = {}
Expand Down
2 changes: 2 additions & 0 deletions plugins/modules/puppet.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,8 @@
- The default value, V(C), is supported on every system, but can lead to encoding errors if UTF-8 is used in the output
- Use V(C.UTF-8) or V(en_US.UTF-8) or similar UTF-8 supporting locales in case of problems. You need to make sure
the selected locale is supported on the system the puppet agent runs on.
- Starting with community.general 9.1.0, you can use the value V(auto) and the module will
try and determine the best parseable locale to use.
type: str
default: C
version_added: 8.6.0
Expand Down

0 comments on commit 1fc31c9

Please sign in to comment.