Add tasks to install AUR packages

This commit is contained in:
Sonny Bakker 2024-10-28 20:47:32 +01:00
parent ecc95d0c96
commit 0fd1bd553e

56
tasks/arch_linux/aur.yml Normal file
View file

@ -0,0 +1,56 @@
- name: set aur build directory
set_fact:
aur_build_dir: '{{ aur_build_dir | /usr/local/src }}'
- name: set build 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[pkg_name.stdout].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: pkg_version.stdout != installed_version
- name: install {{ item.name }}
become: true
pacman:
name: '{{ build_dir }}/{{ package_filename }}'
state: present
when: pkg_version.stdout != installed_version