---
- name: Create dest directories
  file: path={{local_release_dir}}/{{item.dest|dirname}} state=directory recurse=yes
  with_items: downloads

- name: Download items
  get_url:
    url: "{{item.url}}"
    dest: "{{local_release_dir}}/{{item.dest}}"
    sha256sum: "{{item.sha256 | default(omit)}}"
    owner: "{{ item.owner|default(omit) }}"
    mode: "{{ item.mode|default(omit) }}"
  with_items: downloads

- name: Extract archives
  unarchive:
    src: "{{ local_release_dir }}/{{item.dest}}"
    dest: "{{ local_release_dir }}/{{item.dest|dirname}}"
    owner: "{{ item.owner|default(omit) }}"
    mode: "{{ item.mode|default(omit) }}"
    copy: no
  when: "{{item.unarchive is defined and item.unarchive == True}}"
  with_items: downloads

- name: Fix permissions
  file:
    state: file
    path: "{{local_release_dir}}/{{item.dest}}"
    owner: "{{ item.owner|default(omit) }}"
    mode: "{{ item.mode|default(omit) }}"
  when: "{{item.unarchive is not defined or item.unarchive == False}}"
  with_items: downloads
