#!/usr/bin/env bash # create a gopher rss feed phloglink="gopher://spike.nagatha.fr/0/phlog" description="Phil's Phlog" rsslink=gopher://spike.nagatha.fr/phlog/rss.xml filename=$HOME/src/gopher/phlog/rss.xml postdir=$HOME/src/gopher/phlog builddate=$(date --iso-8601=ns) buildyear=$(date +%Y) # Build RSS header & footer build_header () { echo " " > ~/header echo " Phil's Phlog gopher://spike.nagatha.fr/1/phlog en-us © $buildyear Philip A. Wittamore - All Rights Reserved $builddate A Gopher phlog from Brittany, France " >> ~/header } build_footer () { echo " " >> ~/footer } build_item () { echo " $title $postdate $linkadd $linkadd $description " >> ~/feed } build_xml_file () { build_header build_footer cat ~/header ~/feed > ~/rss_tmp cat ~/rss_tmp ~/footer > "$filename" rm ~/header ~/feed ~/rss_tmp ~/footer } # list files and create rss.xml if [[ -f $filename ]]; then rm "$filename" fi touch "$filename" mapfile -t post_array < <(ls -t "$postdir"/*.txt) postNum=0 for posts in "${post_array[@]}"; do ((postNum+=1)) post=$posts title=$(head -n1 "$post" | sed 's/title://g') postdate=$(cat "$post" | sed -n '2p' | sed 's/date://g') postname=${post##*/} linkadd="$phloglink/$postname" description="$(cat "$post" | sed -n "/^$/,/^$/p" | head --lines 3) …" build_item "$post" done # put it all together build_xml_file exit