aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Gonçalves <me@rgoncalves.se>2024-05-12 22:13:47 +0200
committerRomain Gonçalves <me@rgoncalves.se>2024-05-12 22:13:47 +0200
commit7ac69b748b2958f586e0200fa035adc032447ad5 (patch)
tree615fc5df9d028b498b5660706a229ed82e5e406c
parent5b2776c62a839bad57ef2f00a8e450ed6543ca16 (diff)
downloadrules-7ac69b748b2958f586e0200fa035adc032447ad5.tar.gz
feat(roles/cgit): periodically generate age file
-rw-r--r--roles/cgit/files/agefile-generator.sh16
-rw-r--r--roles/cgit/tasks/main.yml17
2 files changed, 30 insertions, 3 deletions
diff --git a/roles/cgit/files/agefile-generator.sh b/roles/cgit/files/agefile-generator.sh
new file mode 100644
index 0000000..b68a7a3
--- /dev/null
+++ b/roles/cgit/files/agefile-generator.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+# https://git.zx2c4.com/cgit/tree/contrib/hooks/post-receive.agefile
+
+set -xe
+
+find "${1}" -name HEAD -type f -exec dirname {} \; | while read -r GIT_DIR
+do
+ export GIT_DIR
+ agefile="$(git rev-parse --git-dir)"/info/web/last-modified
+
+ mkdir -p "$(dirname "$agefile")"
+ git for-each-ref \
+ --sort=-authordate --count=1 \
+ --format='%(authordate:iso8601)' \
+ > "$agefile"
+done
diff --git a/roles/cgit/tasks/main.yml b/roles/cgit/tasks/main.yml
index 2fa9c97..55dd72d 100644
--- a/roles/cgit/tasks/main.yml
+++ b/roles/cgit/tasks/main.yml
@@ -63,13 +63,24 @@
remote_src: true
loop: "{{ cgit__chroot_required_files }}"
-- name: copy about-filter generator
+- name: copy generators
ansible.builtin.copy:
- src: about-filter.sh
- dest: "{{ cgit__chroot_dir }}/bin/about-filter.sh"
+ src: "{{ item }}"
+ dest: "{{ cgit__chroot_dir }}/bin/{{ item }}"
owner: 0
group: 0
mode: "0755"
+ loop:
+ - about-filter.sh
+ - agefile-generator.sh
+
+- name: enable agefile generator
+ ansible.builtin.cron:
+ name: cgit agefile-generator
+ minute: "*/30"
+ job: "{{ cgit__chroot_dir }}/bin/agefile-generator.sh
+ {{ cgit__repositories_dir }}"
+ user: "{{ cgit__user }}"
- name: start and enable slowcgi service
ansible.builtin.service:
remember that computers suck.