--- - name: generate package installation lists ansible.builtin.include_tasks: file: addpkg.yml loop: "{{ packages | unique }}" loop_control: loop_var: pkg - name: redhat based OS block: - name: upgrade dnf packages ansible.builtin.dnf: name: "*" state: latest become: true when: full_upgrade - name: install dnf packages ansible.builtin.dnf: name: "{{ syspkgs | unique }}" state: "{{ install_state }}" become: true when: - syspkgs|length > 0 - name: add flatpak repos community.general.flatpak_remote: enabled: true flatpakrepo_url: "{{ repo.url }}" method: system name: "{{ repo.name }}" state: present loop: "{{ flatpkg_repo }}" loop_control: loop_var: repo become: true when: - flatpkg_repo|length > 0 - flatpkgs|length > 0 - name: install flatpaks community.general.flatpak: method: "system" name: "{{ flatpkgs }}" state: latest become: true when: - flatpkgs|length > 0 when: ansible_os_family == 'RedHat' - name: debian based OS block: - name: upgrade apt packages ansible.builtin.apt: name: "*" state: latest become: true when: full_upgrade - name: install apt packages ansible.builtin.apt: name: "{{ syspkgs | unique }}" state: "{{ install_state }}" become: true when: - syspkgs|length > 0 - name: add flatpak repos community.general.flatpak_remote: enabled: true flatpakrepo_url: "{{ repo.url }}" method: system name: "{{ repo.name }}" state: present loop: "{{ flatpkg_repo | unique }}" loop_control: loop_var: repo become: true when: - flatpkg_repo|length > 0 - flatpkgs|length > 0 - name: install flatpaks community.general.flatpak: method: "system" name: "{{ flatpkgs | unique }}" state: latest become: true when: - flatpkgs|length > 0 when: ansible_os_family == 'Debian' - name: darwin/macOS based OS block: - name: upgrade homebrew packages community.general.homebrew: name: "*" state: latest when: full_upgrade - name: tap homebrew taps community.general.homebrew_tap: name: "{{ brewtaps | unique }}" state: present when: brewtaps|length > 0 - name: install homebrew packages community.general.homebrew: name: "{{ syspkgs | unique }}" state: "{{ install_state }}" when: syspkgs|length > 0 - name: install homebrew casks community.general.homebrew_cask: name: "{{ caskpkgs | unique }}" state: "{{ install_state }}" when: caskpkgs|length > 0 - name: workaround to install homebrew taps ansible.builtin.command: cmd: "brew install {{ tappkg }}" loop: "{{ tappkgs | unique }}" loop_control: loop_var: tappkg when: ansible_os_family == 'Darwin' - name: install srcpkgs ansible.builtin.include_tasks: file: "build/{{ srcpkg }}.yml" loop: "{{ srcpkgs | unique }}" loop_control: loop_var: srcpkg when: srcpkgs|length > 0 - name: install cargo packages at specific version community.general.cargo: name: "{{ cargopkg.name }}" version: "{{ cargopkg.version }}" path: "{{ cargopkg.path | default(default_config.install_prefix) }}" locked: "{{ cargopkg.locked | default(false) }}" become: true when: cargoversioned|length > 0 loop: "{{ cargoversioned | unique }}" loop_control: loop_var: cargopkg - name: Install cargo packages at latest version community.general.cargo: name: "{{ cargopkg }}" state: latest locked: "{{ cargopkg.locked | default(false) }}" when: cargopkgs|length > 0 loop: "{{ cargopkgs | unique }}" loop_control: loop_var: cargopkg - name: Install local go packages environment: GOROOT: /usr/local/go PATH: /usr/local/go/bin:$PATH ansible.builtin.command: cmd: "go install {{ gopkg }}" loop: "{{ gopkgs | unique }}" loop_control: loop_var: gopkg when: gopkgs|length > 0 - name: Install local npm packages community.general.npm: global: true name: "{{ npmpkg }}" state: latest loop: "{{ npmpkgs | unique }}" loop_control: loop_var: npmpkg when: npmpkgs|length > 0 - name: Install python pipx packages for user community.general.pipx: executable: "{% if ansible_os_family == 'Darwin' %}/opt/homebrew/bin/pipx{% else %}/usr/bin/pipx{% endif %}" name: "{{ pipxpkg }}" state: latest loop: "{{ pipxpkgs | unique }}" loop_control: loop_var: pipxpkg when: pipxpkgs|length > 0