--- - name: Parse apps data set_fact: nc_app_name: '{{ item.key }}' nc_app_cfg: '{{ item.value }}' - block: - name: 'Download app {{ nc_app_name }}' unarchive: copy: no src: '{{ nc_app_cfg }}' dest: '{{ nextcloud_webroot }}/apps/' owner: 'www-data' group: 'www-data' creates: '{{ nextcloud_webroot }}/apps/{{ nc_app_name }}' when: nc_app_cfg is not none - name: 'Enable app {{ nc_app_name }}' become_user: 'www-data' become: yes command: php occ app:enable '{{ nc_app_name }}' args: chdir: '{{ nextcloud_webroot }}' when: nc_app_cfg is string - block: - name: Verify app declaration when it's not a simple string assert: that: - (nc_app_cfg.source is defined) and (nc_app_cfg.source is string) msg: '{{ nc_app_name }} is not well declared.' - name: 'Download app {{ nc_app_name }}' unarchive: copy: no src: '{{ nc_app_cfg.source }}' dest: '{{ nextcloud_webroot }}/apps/' owner: 'www-data' group: 'www-data' creates: '{{ nextcloud_webroot }}/apps/{{ nc_app_name }}' when: nc_app_cfg.source is not none - name: 'Enable app {{ nc_app_name }}' become_user: 'www-data' become: yes command: php occ app:enable '{{ nc_app_name }}' args: chdir: '{{ nextcloud_webroot }}' - block: - name: 'Configure app {{ nc_app_name }}' become_user: 'www-data' become: yes command: php occ config:app:set {{ nc_app_name }} {{ item_cfg.key }} --value='{{ item_cfg.value }}' args: chdir: '{{ nextcloud_webroot }}' loop: '{{ nc_app_cfg.conf | default({}) }}' loop_control: loop_var: item_cfg when: nc_app_cfg.conf is defined when: (nc_app_cfg is mapping)