---
#-----------------------------------------------------------------------------#
# ansible-yunohost allows to deploy Yunohost using Ansible                    #
# Copyright 2021-2021 Lydra https://www.lydra.fr/                             #
#                                                                             #
# this program is free software: you can redistribute it and/or modify        #
# it under the terms of the GNU General Public License as published by        #
# the Free Software Foundation, either version 3 of the License, or           #
# (at your option) any later version.                                         #
#                                                                             #
# this program is distributed in the hope that it will be useful,             #
# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the                #
# GNU General Public License for more details.                                #
#                                                                             #
# You should have received a copy of the GNU General Public License           #
# along with this program. If not, see <http://www.gnu.org/licenses/>.        #
#                                                                             #
#-----------------------------------------------------------------------------#

# Installation part
- name: Install yunohost apps
  ansible.builtin.command: yunohost app install {{ ynh_app.link }} \
     --label "{{ ynh_app.label }}" \
     --args "{% for key, value in ynh_app.args.items() %}{{ key }}={{ value }}{% if not loop.last %}&{% endif %}{% endfor %}"
  changed_when: False

# Post-installation part
- name: Create post-install template
  ansible.builtin.template:
    src: "{{ item.src }}"
    dest: "{{ item.dest }}"
    owner: "{{ item.owner | default(ynh_app.link) }}"
    group: "{{ item.group | default('www-data') }}"
    mode: "{{ (item.type == 'script') | ternary('740', '660') }}"
  loop: "{{ ynh_app.post_install|default([]) }}"
  when: ynh_app.post_install

- name: Launch post-install script
  ansible.builtin.command: "{{ ynh_app_post_install.dest }}"
  args:
    chdir: /tmp/
  loop: "{{ ynh_app.post_install|default([]) }}"
  loop_control:
    loop_var: ynh_app_post_install
  when: ynh_app_post_install.type == "script"

- name: Remove script after execution
  ansible.builtin.file:
    path: "{{ ynh_app_post_install.dest }}"
    state: absent
  loop: "{{ ynh_app.post_install|default([]) }}"
  loop_control:
    loop_var: ynh_app_post_install
  when: ynh_app_post_install.type == "script"