From 7a6a69eba60124ab96f58d1ece32c5034a539977 Mon Sep 17 00:00:00 2001
From: jurgenhaas <juergen@paragon-es.de>
Date: Mon, 1 Feb 2021 15:53:37 +0100
Subject: [PATCH] gitlab-ci-cd/drupal#12 Add optional tasks to reset locales
 after a Drupal site deployment

---
 defaults/main.yml      |  1 +
 tasks/install.yml      |  9 +++++++++
 tasks/main.yml         |  1 +
 tasks/reset-locale.yml | 41 +++++++++++++++++++++++++++++++++++++++++
 4 files changed, 52 insertions(+)
 create mode 100644 tasks/reset-locale.yml

diff --git a/defaults/main.yml b/defaults/main.yml
index 33fd487..8a623f7 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -24,6 +24,7 @@ drupal_post_deploy_tasks:
     - updatedb
     - config-import sync
     - dev-modules {{ (drupal.dev_mode|default(false))|ternary("on","off") }}
+    - php:eval "node_access_rebuild();"
     - sset system.maintenance_mode 0
     - cache-rebuild
 
diff --git a/tasks/install.yml b/tasks/install.yml
index e3ccffa..caf840f 100644
--- a/tasks/install.yml
+++ b/tasks/install.yml
@@ -390,6 +390,7 @@
   changed_when: no
   tags:
     - deploy
+    - reset-locale
 
 - name: Post Deploy Tasks
   include_tasks: deploy/post-tasks.yml
@@ -398,3 +399,11 @@
     loop_var: drupal_domain
   tags:
     - deploy
+
+- name: Reset Locale
+  include_tasks: reset-locale.yml
+  with_items: '{{ drupal.domains }}'
+  loop_control:
+    loop_var: drupal_domain
+  tags:
+    - reset-locale
diff --git a/tasks/main.yml b/tasks/main.yml
index 8aca847..bcbc06d 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -36,6 +36,7 @@
         - deploy
         - SetPermissions
         - mysql
+        - reset-locale
 
     - name: Install HAProxy redirects collector
       include_tasks: haproxy_redirects_collector.yml
diff --git a/tasks/reset-locale.yml b/tasks/reset-locale.yml
new file mode 100644
index 0000000..0096710
--- /dev/null
+++ b/tasks/reset-locale.yml
@@ -0,0 +1,41 @@
+---
+# file: roles/drupal/tasks/reset-locale.yml
+
+- block:
+
+    - name: Set default facts
+      set_fact:
+        drushAlias: '@{{ drupal.id }}.{{ drupal_domain.shortname|default("default") }}'
+        drushAliasValidate: "'@{{ drupal.id }}.{{ drupal_domain.shortname|default('default') }}':"
+    - name: Set facts for Drush 8
+      set_fact:
+        drushAlias: '@{{ inventory_hostname }}{{ drushSubkey }}.{{ drupal_domain.shortname|default("default") }}'
+        drushAliasValidate: '@{{ inventory_hostname }}{{ drushSubkey }}.{{ drupal_domain.shortname|default("default") }}'
+      when: drush_version_main|default('8') == '8'
+
+    - name: Reset locale
+      shell: drush -y {{ drushAlias }} {{ item }}
+      args:
+        chdir: '{{ webRoot }}'
+      with_items:
+        - sql:query "truncate locales_location;"
+        - sql:query "truncate locales_source;"
+        - sql:query "truncate locales_target;"
+        - sql:query "truncate locale_file;"
+        - sql:query "delete from key_value where collection='locale.translation_status';"
+        - sdel locale.translation_last_checked
+        - locale:check
+        - locale:update
+      changed_when: no
+      when: drushAliasValidate in drush_aliases.stdout_lines
+
+    - name: Import extra locale files
+      shell: drush -y {{ drushAlias }} locale:import {{ item.lang }} {{ item.file }}  --type=custom --override=all
+      args:
+        chdir: '{{ webRoot }}'
+      with_items: '{{ drupal_domain.extra_locales|default([]) }}'
+      changed_when: no
+      when: drushAliasValidate in drush_aliases.stdout_lines
+
+  tags:
+    - reset-locale
-- 
GitLab