]> Sergey Matveev's repositories - releases-feed.git/blobdiff - releases.atom.zsh
Unify redirection operator
[releases-feed.git] / releases.atom.zsh
index e8d039e71cfa979f7f2fdffbece89dff2ae8e1f8..e7fd2b73ceaa1bab2e53be7b9cd805958b9d5c34 100755 (executable)
@@ -1,20 +1,21 @@
 #!/usr/bin/env zsh
 # releases.atom.zsh -- releases.atom generator
-# Copyright (C) 2022 Sergey Matveev <stargrave@stargrave.org>
+# Copyright (C) 2022-2025 Sergey Matveev <stargrave@stargrave.org>
 
-set -e
+setopt ERR_EXIT
 
 [[ -n "$ATOM_ID" ]]
 [[ -n "$NAME" ]]
 [[ -n "$BASE_URL" ]]
 [[ -n "$AUTHOR_EMAIL" ]]
 export TZ=UTC
-UPDATED=`date -Iseconds`
+zmodload -F zsh/datetime b:strftime
+strftime -s UPDATED %FT%TZ
 ATOM=releases.atom
 tmp=`mktemp`
 trap "rm -f $tmp" HUP PIPE INT QUIT TERM EXIT
 
-cat > $tmp <<EOF
+cat >$tmp <<EOF
 <?xml version="1.0" encoding="UTF-8"?>
 <feed xmlns="http://www.w3.org/2005/Atom">
   <title>$NAME releases</title>
@@ -26,22 +27,26 @@ cat > $tmp <<EOF
   </author>
 EOF
 
+zmodload -F zsh/stat b:zstat
 for meta (*.meta4(om)) {
     fn=$meta:r
     title=${meta%.tar.*}
-    updated=$(date -j -f %s -Iseconds $(stat -f %m $meta))
-    cat >> $tmp <<EOF
+    zstat -A updated -F %FT%TZ +mtime $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>
+    <updated>${updated[1]}</updated>
   </entry>
 EOF
 }
 
-echo "</feed>" >> $tmp
+echo "</feed>" >>$tmp
 
-size_our=`stat -f %z $tmp`
-size_their=`stat -f $ATOM`
-[[ $size_our = $size_their ]] || mv $tmp $ATOM
+zstat -A size_our +size $tmp
+size_their=0
+if [[ -e $ATOM ]] ; then
+    zstat -A size_their +size $ATOM
+fi
+[[ ${size_our[1]} = ${size_their[1]} ]] || mv $tmp $ATOM