1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Update xfconf.py: make locale-independent (#744)

* Update xfconf.py

- ensure correct behaviour, even in desktop environments which don't use English as the default language
- add double as content type

* set environ_update for entire module

* set envvar LANGUAGE instead of LANG because of priority order in evaluating them
This commit is contained in:
Adriaan Callaerts 2020-08-11 12:27:33 +02:00 committed by GitHub
parent 0e8cc31799
commit d13b026f47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View file

@ -0,0 +1,5 @@
minor_changes:
- xfconf - add support for ``double`` type (https://github.com/ansible-collections/community.general/pull/744).
bugfixes:
- xfconf - make it work in non-english locales (https://github.com/ansible-collections/community.general/pull/744).

View file

@ -44,7 +44,7 @@ options:
For array mode, use a list of types. For array mode, use a list of types.
type: list type: list
elements: str elements: str
choices: [ int, uint, bool, float, string ] choices: [ int, uint, bool, float, double, string ]
state: state:
description: description:
- The action to take upon the property/value. - The action to take upon the property/value.
@ -124,7 +124,7 @@ class XfConfProperty(object):
GET = "get" GET = "get"
RESET = "absent" RESET = "absent"
VALID_STATES = (SET, GET, RESET) VALID_STATES = (SET, GET, RESET)
VALID_VALUE_TYPES = ('int', 'uint', 'bool', 'float', 'string') VALID_VALUE_TYPES = ('int', 'uint', 'bool', 'float', 'double', 'string')
previous_value = None previous_value = None
is_array = None is_array = None
@ -144,8 +144,6 @@ class XfConfProperty(object):
self.method_map = dict(zip((self.SET, self.GET, self.RESET), self.method_map = dict(zip((self.SET, self.GET, self.RESET),
(self.set, self.get, self.reset))) (self.set, self.get, self.reset)))
# @TODO This will not work with non-English translations, but xfconf-query does not return
# distinct result codes for distinct outcomes.
self.does_not = 'Property "{0}" does not exist on channel "{1}".'.format(self.property, self.channel) self.does_not = 'Property "{0}" does not exist on channel "{1}".'.format(self.property, self.channel)
def run(cmd): def run(cmd):
@ -264,6 +262,9 @@ def main():
supports_check_mode=True supports_check_mode=True
) )
# Force language to 'C' to ensure return values are always formatted in english, even in non-english environments
module.run_command_environ_update = dict(LANGUAGE='C')
state = module.params['state'] state = module.params['state']
try: try: