---
- 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