---
- name: "π¦ Normalise the install contract for '{{ plugin_name }}'"
vars:
wp_plugin_catalog: "{{ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.update.catalog') }}"
ansible.builtin.set_fact:
wp_plugin_required: "{{ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.required') | bool }}"
wp_plugin_pinned: "{{ wp_plugin_catalog == 'github-releases' }}"
wp_plugin_pinned_version: >-
{{
(lookup('config', application_id, 'addons.' ~ plugin_name ~ '.version') | regex_replace('^v', ''))
if wp_plugin_catalog == 'github-releases'
else ''
}}
wp_plugin_source: >-
{{
(
'https://github.com/'
~ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.update.upstream_id')
~ '/releases/download/'
~ lookup('config', application_id, 'addons.' ~ plugin_name ~ '.version')
~ '/' ~ plugin_name ~ '.zip'
)
if wp_plugin_catalog == 'github-releases'
else plugin_name
}}
changed_when: false
- name: "π¦ Install and activate WordPress plugin '{{ plugin_name }}'"
ansible.builtin.shell:
cmd: >
WP_PLUGIN={{ plugin_name | quote }}
WP_SOURCE={{ wp_plugin_source | trim | quote }}
WP_PINNED_VERSION={{ wp_plugin_pinned_version | trim | quote }}
WP_REQUIRED={{ wp_plugin_required | bool | string | lower | quote }}
WP_NETWORK={{ WORDPRESS_MULTISITE_ENABLED | bool | string | lower | quote }}
WP_CONTAINER={{ WORDPRESS_CONTAINER_ADDRESS }}
WP_USER={{ WORDPRESS_USER | quote }}
WP_PATH={{ WORDPRESS_DOCKER_HTML_PATH | quote }}
bash -s
stdin: "{{ lookup('file', 'shell/install_plugin.sh') }}"
register: wp_plugin_install
changed_when: "'infinito-changed' in wp_plugin_install.stdout"