development/tasks/aur-package.yml

52 lines
1.4 KiB
YAML

- name: set package directory
set_fact:
build_dir: '{{ aur_build_dir }}/{{ item.name }}'
- name: 'retrieve package name for {{ item.name }}'
command:
argv:
- grep
- --only-matching
- --perl-regexp
- "(?<=pkgname=).*"
- "{{ build_dir }}/PKGBUILD"
register: pkg_name
- name: 'retrieve package version for {{ item.name }}'
command:
argv:
- grep
- --only-matching
- --perl-regexp
- "(?<=pkgver=).*"
- "{{ build_dir }}/PKGBUILD"
register: pkg_version
- name: 'retrieve package release for {{ item.name }}'
command:
argv:
- grep
- --only-matching
- --perl-regexp
- "(?<=pkgrel=).*"
- "{{ build_dir }}/PKGBUILD"
register: pkg_release
- 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 }}'
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
pacman:
name: '{{ build_dir }}/{{ package_filename }}'
state: present
when: item.version != installed_version