---
-
  name: Check current docker-compose version.
  ansible.builtin.command: "{{ docker_compose_path }} --version"
  register: docker_compose_vsn
  check_mode: false
  changed_when: false
  failed_when: false

-
  name: Check current docker-compose version.
  ansible.builtin.set_fact:
    docker_compose_current_version: "{{ docker_compose_vsn.stdout | regex_search('(\\d+(\\.\\d+)+)') }}"
  when: >
    docker_compose_vsn.stdout is defined
    and (docker_compose_vsn.stdout | length > 0)

-
  name: Delete existing docker-compose version if it's different.
  ansible.builtin.file:
    path: "{{ docker_compose_path }}"
    state: absent
  when: >
    docker_compose_current_version is defined
    and (docker_compose_version | regex_replace('v', '')) not in docker_compose_current_version

-
  name: Install Docker Compose (if configured).
  ansible.builtin.get_url:
    url: "{{ docker_compose_url }}"
    dest: "{{ docker_compose_path }}"
    mode: "0755"
  when: >
    (docker_compose_current_version is not defined)
    or (docker_compose_current_version | length == 0)
    or (docker_compose_current_version is version((docker_compose_version | regex_replace('v', '')), '<'))
