]> Sergey Matveev's repositories - releases-feed.git/commitdiff
Initial commit
authorSergey Matveev <stargrave@stargrave.org>
Fri, 11 Feb 2022 17:13:03 +0000 (20:13 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 11 Feb 2022 17:13:03 +0000 (20:13 +0300)
releases.atom.zsh [new file with mode: 0755]

diff --git a/releases.atom.zsh b/releases.atom.zsh
new file mode 100755 (executable)
index 0000000..e8d039e
--- /dev/null
@@ -0,0 +1,47 @@
+#!/usr/bin/env zsh
+# releases.atom.zsh -- releases.atom generator
+# Copyright (C) 2022 Sergey Matveev <stargrave@stargrave.org>
+
+set -e
+
+[[ -n "$ATOM_ID" ]]
+[[ -n "$NAME" ]]
+[[ -n "$BASE_URL" ]]
+[[ -n "$AUTHOR_EMAIL" ]]
+export TZ=UTC
+UPDATED=`date -Iseconds`
+ATOM=releases.atom
+tmp=`mktemp`
+trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
+
+cat > $tmp <<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+  <title>$NAME releases</title>
+  <id>urn:uuid:$ATOM_ID</id>
+  <link rel="self" href="$BASE_URL/$ATOM"></link>
+  <updated>$UPDATED</updated>
+  <author>
+    <email>$AUTHOR_EMAIL</email>
+  </author>
+EOF
+
+for meta (*.meta4(om)) {
+    fn=$meta:r
+    title=${meta%.tar.*}
+    updated=$(date -j -f %s -Iseconds $(stat -f %m $meta))
+    cat >> $tmp <<EOF
+  <entry>
+    <title>$title</title>
+    <id>$BASE_URL/$fn</id>
+    <link rel="alternate" type="application/metalink4+xml" href="$BASE_URL/$meta" />
+    <updated>$updated</updated>
+  </entry>
+EOF
+}
+
+echo "</feed>" >> $tmp
+
+size_our=`stat -f %z $tmp`
+size_their=`stat -f $ATOM`
+[[ $size_our = $size_their ]] || mv $tmp $ATOM