- name: 'Create Miniconda base dir'
  loop_control:
    loop_var: 'conda_dir'
  loop:
    - { path: '{{ miniconda_install_dir }}', state: 'directory' }
    - { path: '{{ miniconda_installer_dl_dir }}', state: 'directory' }
  ansible.builtin.file:
    path: '{{ conda_dir.path }}'
    state: '{{ conda_dir.state }}'



- name: 'Download latest Miniconda installer'
  ansible.builtin.get_url:
    url: '{{ miniconda_dl_uri }}'
    dest: '{{ miniconda_dl_local_abs }}'



- name: 'Set execute bit on Miniconda installer'
  ansible.builtin.file:
    path: '{{ miniconda_dl_local_abs }}'
    mode: 'a+x'



- name: 'Get Miniconda installer help output'
  register: 'rv_miniconda_installer_help'
  changed_when: 'rv_miniconda_installer_help.rc != 2'
  failed_when: 'rv_miniconda_installer_help.rc != 2'
  ansible.builtin.shell: '{{ miniconda_dl_local_abs }} -h'



- name: 'Get Miniconda installer version from help output'
  when: 'rv_miniconda_installer_help.rc == 2'
  set_fact:
    miniconda_installer_version: '{{ rv_miniconda_installer_help.stdout | regex_search(''Installs Miniconda3 (py.*?_)(.*?)(\n)'', ''\2'') }}'



- name: 'Get conda version output'
  register: 'rv_conda_version_output'
  changed_when: 'rv_conda_version_output.rc != 0'
  failed_when: 'false'
  ansible.builtin.shell: 'conda --version 2> ''/dev/null'''



- name: 'Get conda version from version output'
  register: 'rv_conda_version'
  changed_when: '(not conda_version) or (rv_conda_version_output.rc != 0)'
  failed_when: 'false'
  set_fact:
    conda_version: '{{ rv_conda_version_output.stdout | regex_search(''conda ([^\r\n\f]+)'', ''\1'') }}'



- name: 'If Miniconda old or missing: install it'
  when: '(miniconda_installer_version | first is version(''4.11.9'', ''>'')) or (not conda_version)'
  register: 'rv_miniconda_install'
  ansible.builtin.shell: '{{ miniconda_dl_local_abs }} -b -p ''{{ miniconda_install_dir }}'' -u'



- name: 'If Miniconda was installed: Initialize'
  when: 'rv_miniconda_install.changed'
  register: 'rv_conda_init'
  ansible.builtin.shell: '{{ miniconda_conda_binary }} init'



- name: 'Set ~/.condarc file'
  ansible.builtin.copy:
    src: '_current_user_home_/.condarc'
    dest: '{{ ansible_env.HOME }}/.condarc'
    mode: '0644'