---
#-----------------------------------------------------------------------------#
# ansible-yunohost allows to deploy Yunohost using Ansible                    #
# Copyright 2021-present 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/>.        #
#                                                                             #
#-----------------------------------------------------------------------------#
- name: Fail if variables are not used correctly
  ansible.builtin.fail:
    msg: You need to define variable ynh_backup.apps and / or ynh_backup.system to True
  when: ynh_backup.apps | default(True) is false and ynh_backup.system | default(True) is false
  tags: backup

- name: Create backup folder if doesn't already exist
  ansible.builtin.file:
    path:  "{{ ynh_backup.directory }}"
    state: directory
    mode:  '0750'
  when: ynh_backup.directory is defined
  tags: backup

- name: Create backup script
  ansible.builtin.template:
    src:   "{{ ynh_backup_src_script }}"
    dest:  "{{ ynh_backup_dest_script }}"
    owner: root
    group: root
    mode:  '0740'
  tags: backup

- name: Create cron task to schedule YNH backup script
  ansible.builtin.cron:
    name: "auto-backup to {{ ynh_backup.directory | default(_ynh_backup_directory) }}"
    month: "{{ ynh_backup.scheduled_month | default('*') }}"
    weekday: "{{ ynh_backup.scheduled_weekday | default('*') }}"
    hour: "{{ ynh_backup.scheduled_hour | default('1') }}"
    minute: "{{ ynh_backup.scheduled_minute | default('0') }}"
    user: root
    job: "{{ ynh_backup_dest_script }}"
    cron_file: ynh_backup_cron
  tags: backup
