# Update lists and upgrade packages.

- name: Update apt package lists
  ansible.builtin.apt:
    update_cache: true
    cache_valid_time: 86400

- name: Try to upgrade packages
  block:
    - name: Upgrade packages
      ansible.builtin.apt:
        upgrade: dist
        autoremove: true
        autoclean: true
  rescue:
    - name: Looks like dpkg was interrupted, configure manually
      ansible.builtin.command:
        cmd: dpkg --configure -a
    - name: Try again to upgrade packages
      ansible.builtin.apt:
        upgrade: dist
        autoremove: true
        autoclean: true

- name: Install etckeeper
  ansible.builtin.apt:
    name: etckeeper
    state: latest # noqa package-latest

- name: Install extra packages from stable
  ansible.builtin.apt:
    name: "{{ extra_pkgs }}"
    state: latest # noqa package-latest
  when: extra_pkgs|length

- name: Add backports for {{ ansible_distribution_release }}
  ansible.builtin.apt_repository:
    repo: >
      deb http://deb.debian.org/debian/ {{ ansible_distribution_release }}-backports
      main non-free-firmware
    state: present
    update_cache: true
  when: extra_pkgs_bpo|length

- name: Install extra packages from backports
  ansible.builtin.apt:
    name: "{{ extra_pkgs_bpo }}"
    state: latest # noqa package-latest
    default_release: "{{ ansible_distribution_release }}-backports"
  when: extra_pkgs_bpo|length