alexkarle.com

Source for alexkarle.com
git clone git://git.alexkarle.com/alexkarle.com.git
Log | Files | Refs | README | LICENSE

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"