---
- name: "Ensure {{ app_name }} is installed"
  become_user: "{{ composer_home_owner }}"
  chocolatey.chocolatey.win_chocolatey:
    name: composer
    state: "{{ app_state | default('present') }}"
    package_params: /Dev:{{ composer_path }}

- name: Run generic Windows tasks
  include_tasks: user-Windows.yml
  when: (user.system is not defined) or ((user.system is defined) and (not user.system))
  loop: "{{ user_configs | default([]) }}"
  loop_control:
    label: "{{ user.username }}"
    loop_var: user

- name: Ensure configured globally-required packages are installed
  become_user: "{{ composer_home_owner }}"
  command: >
    {{ composer_path }}\\composer.exe global require {{ item.name }}:{{ item.release | default('@stable') }} --no-progress --no-interaction
  args:
    creates: "{{ composer_home_path }}\\vendor\\{{ item.name }}"
  loop: "{{ composer_global_packages }}"
  when: composer_global_packages | length > 0

- name: Ensure composer_home_path bin directory is added to global $PATH
  become_user: "{{ composer_home_owner }}"
  ansible.windows.win_path:
    elements: "{{ composer_home_path }}\\vendor\\bin"
    state: present
  when: composer_add_to_path | bool

- name: Ensure composer_project_path bin directory is added to global $PATH
  become_user: "{{ composer_home_owner }}"
  ansible.windows.win_path:
    elements: "{{ composer_project_path }}"
    state: present
  when: composer_add_project_to_path | bool
