From db562158f7c1a7607c28f83860fd9f0902052ae1 Mon Sep 17 00:00:00 2001
From: Marty Oehme <contact@martyoeh.me>
Date: Wed, 5 Mar 2025 16:10:30 +0100
Subject: [PATCH] feat(packages): Add personal repository

Add my own package repository and let users define additional custom
repositories to install. Enable installation of packages from my
repository.
---
 group_vars/headless.yaml                      | 7 +++++++
 roles/packages/defaults/main.yaml             | 2 ++
 roles/packages/tasks/main.yaml                | 9 +++++++++
 roles/packages/templates/custom-repos.conf.j2 | 3 +++
 4 files changed, 21 insertions(+)
 create mode 100644 roles/packages/defaults/main.yaml
 create mode 100644 roles/packages/templates/custom-repos.conf.j2

diff --git a/group_vars/headless.yaml b/group_vars/headless.yaml
index 7b938dc..c4272cf 100644
--- a/group_vars/headless.yaml
+++ b/group_vars/headless.yaml
@@ -70,3 +70,10 @@ packages_terminal:
   - zoxide
   - zr # zsh plugin manager
   - zsh
+
+packages_custom:
+  - bemoji
+  - dotter
+  - filtile-bin
+  - localsend-go
+  - ripgrep-all
diff --git a/roles/packages/defaults/main.yaml b/roles/packages/defaults/main.yaml
new file mode 100644
index 0000000..f6c640f
--- /dev/null
+++ b/roles/packages/defaults/main.yaml
@@ -0,0 +1,2 @@
+custom_repositories:
+  - https://marty-oehme.github.io/void-templates
diff --git a/roles/packages/tasks/main.yaml b/roles/packages/tasks/main.yaml
index d74b51e..75784cc 100644
--- a/roles/packages/tasks/main.yaml
+++ b/roles/packages/tasks/main.yaml
@@ -1,3 +1,12 @@
+---
+- name: Add custom repositories
+  ansible.builtin.template:
+    src: custom-repos.conf.j2
+    dest: /etc/xbps.d/20-custom-repositories.conf
+  tags:
+    - repositories
+    - custom_packages
+
 - name: Install all my used void packages
   community.general.xbps:
     name: "{{ lookup('community.general.merge_variables', '^packages_.*') }}"
diff --git a/roles/packages/templates/custom-repos.conf.j2 b/roles/packages/templates/custom-repos.conf.j2
new file mode 100644
index 0000000..702648e
--- /dev/null
+++ b/roles/packages/templates/custom-repos.conf.j2
@@ -0,0 +1,3 @@
+{% for item in custom_repositories %}
+repository={{ item }}
+{% endfor %}