development/tasks/arch/aur-package.yml

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