---
- name: disable default rules
  set_fact:
    rsyslog_default_rules_state: absent
  when: rsyslog_archival_format_enabled

- name: configure systemd tmpfiles.d
  template:
    src: tmpfiles_d-rsyslog.conf
    dest: /etc/tmpfiles.d/00rsyslog.conf
    owner: root
    group: root
    mode: 0644
  when: rsyslog_archival_format_enabled

- name: manage systemd tmpfiles.d override
  file:
    path: /etc/tmpfiles.d/00rsyslog.conf
    state: "{{ rsyslog_archival_format_enabled | ternary('file', 'absent') }}"

- name: find default log files
  find:
    path: /var/log
    file_type: file
    pattern: "{{ rsyslog_default_log_patterns }}"
  when: rsyslog_archival_format_enabled
  register: default_log_files

- name: delete files
  file:
    path: "{{ item.path }}"
    state: "{{ rsyslog_archival_format_enabled | ternary('absent', 'file') }}"
  when: rsyslog_archival_format_enabled
  with_items: "{{ default_log_files.files }}"

- name: delete logrotate configuration
  file:
    path: /etc/logrotate.d/rsyslog
    state: absent
  when: rsyslog_archival_format_enabled

- name: create /var/log/syslog
  file:
    path: /var/log/syslog
    owner: "{{ rsyslog_dir_owner }}"
    group: "{{ rsyslog_dir_group }}"
    mode: "{{ rsyslog_dir_create_mode }}"
    state: directory

- name: configure archival format
  template:
    src: archival.conf.j2
    dest: /etc/rsyslog.d/10-archival.conf
    owner: root
    group: root
    mode: 0644
  notify: restart rsyslog
  when: rsyslog_archival_format_enabled

- name: manage archive rules
  file:
    path: /etc/rsyslog.d/10-archival.conf
    state: "{{ rsyslog_archival_format_enabled | ternary('file', 'absent') }}"

- name: compress log cron job
  cron:
    name: compress syslog
    minute: "0"
    hour: "1"
    user: root
    job: find /var/log/syslog/ -type f -name "*.log" -mtime +5 -exec xz {} \;
    state: "{{ rsyslog_archival_format_enabled | ternary('present', 'absent') }}"