54 lines
1.5 KiB
YAML
54 lines
1.5 KiB
YAML
---
|
|
- name: Set package directory
|
|
ansible.builtin.set_fact:
|
|
build_dir: "{{ aur_build_dir }}/{{ item.name }}"
|
|
|
|
- name: "Retrieve package name for {{ item.name }}"
|
|
ansible.builtin.command:
|
|
argv:
|
|
- grep
|
|
- --only-matching
|
|
- --perl-regexp
|
|
- "(?<=pkgname=).*"
|
|
- "{{ build_dir }}/PKGBUILD"
|
|
register: pkg_name
|
|
|
|
- name: "Retrieve package version for {{ item.name }}"
|
|
ansible.builtin.command:
|
|
argv:
|
|
- grep
|
|
- --only-matching
|
|
- --perl-regexp
|
|
- "(?<=pkgver=).*"
|
|
- "{{ build_dir }}/PKGBUILD"
|
|
register: pkg_version
|
|
|
|
- name: "Retrieve package release for {{ item.name }}"
|
|
ansible.builtin.command:
|
|
argv:
|
|
- grep
|
|
- --only-matching
|
|
- --perl-regexp
|
|
- "(?<=pkgrel=).*"
|
|
- "{{ build_dir }}/PKGBUILD"
|
|
register: pkg_release
|
|
|
|
- name: Set package filename & version
|
|
ansible.builtin.set_fact:
|
|
package_filename: "{{ pkg_name.stdout }}-{{ pkg_version.stdout }}-{{ pkg_release.stdout }}-{{ item.arch }}.pkg.tar.zst"
|
|
installed_version: ansible_facts.packages[item.package_name].version|default('')
|
|
|
|
- name: "Build package {{ item.name }}"
|
|
ansible.builtin.command: "makepkg --syncdeps --rmdeps --clean --noconfirm --force"
|
|
args:
|
|
chdir: "{{ build_dir }}"
|
|
creates: "{{ build_dir }}/{{ package_filename }}"
|
|
register: package_build
|
|
when: item.version != installed_version
|
|
|
|
- name: "Install {{ item.name }}"
|
|
become: true
|
|
community.general.pacman:
|
|
name: "{{ build_dir }}/{{ package_filename }}"
|
|
state: present
|
|
when: item.version != installed_version
|