# Current pip unconditionally uses md5.
# We can re-enable if pip switches to a different hash or allows us to not check md5.

- name: Python 2
  when: ansible_python.version.major == 2
  block:
    - name: find virtualenv command
      command: "which virtualenv virtualenv-{{ ansible_python.version.major }}.{{ ansible_python.version.minor }}"
      register: command
      ignore_errors: true

    - name: is virtualenv available to python -m
      command: '{{ ansible_python_interpreter }} -m virtualenv'
      register: python_m
      when: not command.stdout_lines
      failed_when: python_m.rc != 2

    - name: remember selected virtualenv command
      set_fact:
        virtualenv: "{{ command.stdout_lines[0] if command is successful else ansible_python_interpreter ~ ' -m virtualenv' }}"

- name: Python 3+
  when: ansible_python.version.major > 2
  block:
    - name: remember selected virtualenv command
      set_fact:
        virtualenv: "{{ ansible_python_interpreter ~ ' -m venv' }}"

- block:
    - name: install git, needed for repo installs
      package:
        name: git
        state: present
      when: ansible_distribution not in ["MacOSX", "Alpine"]
      register: git_install

    - name: ensure wheel is installed
      pip:
        name: wheel

    - include_tasks: pip.yml
  always:
    - name: platform specific cleanup
      include_tasks: "{{ cleanup_filename }}"
      with_first_found:
        - "{{ ansible_distribution | lower }}_cleanup.yml"
        - "default_cleanup.yml"
      loop_control:
        loop_var: cleanup_filename
  when: ansible_fips|bool != True
  module_defaults:
    pip:
      virtualenv_command: "{{ virtualenv }}"