gophatom.sh (1311B) [raw]
1 #!/bin/sh 2 # gophatom.sh -- Atom feeds for gopher 3 set -e 4 5 REPO=$(dirname "$(dirname "$(dirname "$0")")") 6 7 cat <<HEADER 8 <?xml version="1.0" encoding="utf-8"?> 9 <feed xmlns="http://www.w3.org/2005/Atom"> 10 <title>Alex Karle's phlog</title> 11 <id>gopher://alexkarle.com/1/phlog</id> 12 <link rel="self" type="application/atom+xml" href="gopher://alexkarle.com/0/phlog/atom.xml"/> 13 <link rel="alternate" href="gopher://alexkarle.com/1/phlog"/> 14 <author> 15 <name>Alex Karle</name> 16 </author> 17 HEADER 18 19 IFS=' 20 ' 21 for p in $(grep '^\[0|\[' "$REPO/gopher/phlog/index.gph"); do 22 stripped=${p#\[0\|\[} 23 date=${stripped%%\]*} 24 if [ -z "$printed_update" ]; then 25 printed_update=1 26 printf " %s\n" "<updated>${date}T00:00:00Z</updated>" 27 fi 28 stripped=${stripped#*\] } 29 title=${stripped%%\|*} 30 stripped=${stripped#*\|} 31 file=$(basename "${stripped%%\|*}") 32 cat <<ENTRY 33 <entry> 34 <title>${title}</title> 35 <link rel="alternate" href="gopher://alexkarle.com/0/phlog/${file}"/> 36 <id>gopher://alexkarle.com/0/phlog/${file}</id> 37 <updated>${date}T00:00:00Z</updated> 38 <published>${date}T00:00:00Z</published> 39 <content type="text"> 40 <![CDATA[ 41 ENTRY 42 cat "$REPO/gopher/phlog/${file}" 43 cat <<EOENTRY 44 ]]> 45 </content> 46 </entry> 47 EOENTRY 48 done 49 printf "</feed>\n"