- name: "Disable incompatible plugins for {{ plugin_key }} (batched shell, no async)" ansible.builtin.shell: | # do not set -e here; allow per-line fallbacks {% for incompatible_plugin in (plugin_value.incompatible_plugins | default([])) %} {{ nextcloud_docker_exec_occ }} app:disable {{ incompatible_plugin }} || true {% endfor %} args: executable: /bin/bash when: - plugin_value.incompatible_plugins is defined - plugin_value.incompatible_plugins | length > 0 register: disable_incompat changed_when: > (((disable_incompat.stdout | default('')) ~ (disable_incompat.stderr | default(''))) is search('disabled')) and ( (((disable_incompat.stdout | default('')) ~ (disable_incompat.stderr | default(''))) is not search('already disabled')) ) failed_when: false async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}" poll: "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}" - name: install {{ plugin_key }} nextcloud plugin command: "{{ nextcloud_docker_exec_occ }} app:install {{ plugin_key }}" register: install_result failed_when: > install_result.rc != 0 and ("already installed" not in install_result.stdout) and ("not compatible with this version of the server" not in install_result.stdout) changed_when: > install_result.rc == 0 and ("already installed" not in install_result.stdout) - include_tasks: 07_plugin_enable_and_configure.yml when: - install_result is defined - > install_result.rc == 0 or "already installed" in install_result.stdout