#!/usr/bin/env bash # create a gopher rss feed cd "$HOME/src/gopher/phlog" || exit phloglink="gopher://spike.nagatha.fr/1/phlog" description="Phil's Phlog" rsslink="gopher://spike.nagatha.fr/0/phlog/rss.xml" filename="$HOME/src/gopher/phlog/rss.xml" 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 © $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 dir_array < <(ls -dr */) postNum=0 for dir in "${dir_array[@]}"; do ((postNum+=1)) post=$dir post="${dir//\//}" title=$(head -n1 "$post/gophermap") postdate=$(cat "$post/gophermap" | sed -n '2p') linkadd="$phloglink/$post" description="$(cat "$post/gophermap" | sed -n "/^$/,/^$/p" | head --lines 3) …" build_item "$post" done # put it all together build_xml_file exit