From 8fb50591a99591a70163e3daa0db3fc50339ad8d Mon Sep 17 00:00:00 2001 From: Bernd Finger Date: Fri, 3 Jan 2025 17:52:33 +0100 Subject: [PATCH] sap_general_preconfigure: Simplify setting the locale Signed-off-by: Bernd Finger --- .../tasks/sapnote/2369910.yml | 43 ++++++------------- 1 file changed, 12 insertions(+), 31 deletions(-) diff --git a/roles/sap_general_preconfigure/tasks/sapnote/2369910.yml b/roles/sap_general_preconfigure/tasks/sapnote/2369910.yml index 7f8161e9..0264946f 100644 --- a/roles/sap_general_preconfigure/tasks/sapnote/2369910.yml +++ b/roles/sap_general_preconfigure/tasks/sapnote/2369910.yml @@ -13,44 +13,25 @@ - sap_general_preconfigure_2369910 - sap_general_preconfigure_configure_locale block: - - name: Get list of installed locales - ansible.builtin.command: locale -a - changed_when: false - register: __sap_general_preconfigure_locales_installed - - - name: Assert that an English locale is installed - ansible.builtin.assert: - that: __sap_general_preconfigure_locales_installed.stdout_lines | select('match', '^en_') | list | length > 0 - fail_msg: "FAIL: No English locale is installed. Please install an English locale!" - success_msg: "PASS: An English locale is installed." - - - name: Configure English locale + - name: Configure an English locale when: - - sap_general_preconfigure_default_locale is defined - - sap_general_preconfigure_default_locale | length > 0 - - > - (__sap_general_preconfigure_locales_installed.stdout_lines | select('match', sap_general_preconfigure_default_locale) | list | length > 0) or - (__sap_general_preconfigure_locales_installed.stdout_lines | select('match', (sap_general_preconfigure_default_locale | regex_replace('UTF-8', 'utf8'))) | list | length > 0) - - > - sap_general_preconfigure_default_locale.startswith('en_') or - sap_general_preconfigure_default_locale.startswith('C.UTF-8') - ansible.builtin.lineinfile: - path: /etc/locale.conf - regexp: ^LANG= - line: "LANG=\"{{ sap_general_preconfigure_default_locale }}\"" - state: present - create: true - owner: root - group: root - mode: '0644' + - sap_general_preconfigure_default_locale is defined and sap_general_preconfigure_default_locale + - sap_general_preconfigure_default_locale == 'C.UTF-8' or + sap_general_preconfigure_default_locale == 'C.utf8' or + sap_general_preconfigure_default_locale.startswith('en_') and + (sap_general_preconfigure_default_locale.endswith('UTF-8') or + sap_general_preconfigure_default_locale.endswith('utf8')) + ansible.builtin.command: "localectl set-locale LANG={{ sap_general_preconfigure_default_locale }}" - name: Get the current default locale - ansible.builtin.command: awk '/^LANG=/&&(/C.UTF-8/||/en_/){print}' /etc/locale.conf + ansible.builtin.command: awk '{gsub("\"","")}/^LANG=/&&(/=C\./||/=en_/)&&(/utf8$/||/UTF-8$/){print}' /etc/locale.conf changed_when: false register: __sap_general_preconfigure_current_default_locale - name: Assert that an English locale is the default ansible.builtin.assert: that: __sap_general_preconfigure_current_default_locale.stdout_lines | length > 0 - fail_msg: "FAIL: English is not set as the default locale. Please define an English default locale with the 'sap_general_preconfigure_default_locale' variable!" + fail_msg: > + "FAIL: English is not set as the default locale. Please define an English default locale + with the 'sap_general_preconfigure_default_locale' variable!" success_msg: "PASS: An English default locale is set."