---
- name: file_download | Downloading...
  debug:
    msg:
      - "URL: {{ download.url }}"
      - "Dest: {{ download.dest }}"

- name: file_download | Create dest directory
  file:
    path: "{{local_release_dir}}/{{download.dest|dirname}}"
    state: directory
    recurse: yes
  when:
    - download.enabled
    - download.file
    - group_names | intersect(download.groups) | length

- name: file_download | Download item
  get_url:
    url: "{{download.url}}"
    dest: "{{local_release_dir}}/{{download.dest}}"
    sha256sum: "{{download.sha256 | default(omit)}}"
    owner: "{{ download.owner|default(omit) }}"
    mode: "{{ download.mode|default(omit) }}"
    validate_certs: "{{ download_validate_certs }}"
  register: get_url_result
  until: "'OK' in get_url_result.msg or 'file already exists' in get_url_result.msg"
  retries: 4
  delay: "{{ retry_stagger | random + 3 }}"
  when:
    - download.enabled
    - download.file
    - group_names | intersect(download.groups) | length

- name: file_download | Extract archives
  unarchive:
    src: "{{ local_release_dir }}/{{download.dest}}"
    dest: "{{ local_release_dir }}/{{download.dest|dirname}}"
    owner: "{{ download.owner|default(omit) }}"
    mode: "{{ download.mode|default(omit) }}"
    copy: no
  when:
    - download.enabled
    - download.file
    - download.unarchive|default(False)
    - group_names | intersect(download.groups) | length