main.ymlΒΆ

---
- include_tasks: 00_core.yml
  when: run_once_pkgmgr_install is not defined

- name: "πŸ“¦ Install '{{ package_name }}' via pkgmgr (non-interactive)"
  shell: |
    set -euo pipefail

    export PKGMGR_VENV="{{ ansible_facts['env']['HOME'] }}/.venvs/pkgmgr"
    export PATH="${PKGMGR_VENV}/bin:${PATH}"

    export GIT_TERMINAL_PROMPT=0
    export GIT_SSH_COMMAND="ssh -o BatchMode=yes -o StrictHostKeyChecking=yes"
    export PYTHONUNBUFFERED=1

    timeout --signal=KILL 600s \
      "${PKGMGR_VENV}/bin/pkgmgr" update "{{ package_name }}" --clone-mode shallow </dev/null
  args:
    executable: /bin/bash
  register: pkgmgr_update
  notify: "{{ package_notify | default(omit,true) }}"
  changed_when: "'already up to date' not in (pkgmgr_update.stdout | lower)"
  become: true
  retries: 7
  delay: 20
  until: pkgmgr_update.rc == 0

- name: "βœ… Assert | pkgmgr path resolves '{{ package_name }}'"
  shell: |
    set -euo pipefail
    "{{ ansible_facts['env']['HOME'] }}/.venvs/pkgmgr/bin/pkgmgr" path "{{ package_name }}" >/dev/null
  args:
    executable: /bin/bash
  register: pkgmgr_path_assert
  changed_when: false
  failed_when: pkgmgr_path_assert.rc != 0
  when: MODE_ASSERT | bool