Files
Website-Scripts/rss.sh

76 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
BASEDIR="$(dirname "${0}" | sed "s|^\.|${PWD}|")"
DATE="$(TZ=UTC date -R)"
source "${BASEDIR}/website.conf"
shopt -s extglob
LINKS=($(find -P "${WEBROOT}/blog/" | grep 'index\.html' | grep -v 'blog/index\.html' | sed 's|index.html||g; s|.*/blog|blog|g' | sort))
MENU="@(${LINKS[0]}"
for ((i=1;i<${#LINKS[@]};i++)); do
MENU+="|${LINKS[${i}]}"
done
MENU+=")"
printf 'Select the link you wish to use\n'
select LINK in "${LINKS[@]}"
do
case ${LINK} in
${MENU})
break
;;
*)
printf \
'Invalid option\n'
;;
esac
done
shopt -u extglob
TITLE="$(cat "${WEBROOT}/${LINK}/index.html" | grep -A1 '<title>' | grep '\[' | sed 's|.*\[ ||g; s| \| easthighNerd \].*||')"
printf 'Description of blog post:\n'
read -r DESCRIPTION
cat "${WEBROOT}/blog/feed.rss" | sed '/<last.*$/Q' | tee "${WEBROOT}/blog/feed.rss.tmp" &> /dev/null
cat << EOF | tee --append "${WEBROOT}/blog/feed.rss.tmp" &> /dev/null
<lastBuildDate>
${DATE}
</lastBuildDate>
<item>
<title>
${TITLE}
</title>
<link>
${WEBSITE_URL}/${LINK}
</link>
<guid>
$(uuidgen)
</guid>
<pubDate>
${DATE}
</pubDate>
<description>
${DESCRIPTION}
</description>
</item>
EOF
cat "${WEBROOT}/blog/feed.rss" | sed '1,29d' | tee --append "${WEBROOT}/blog/feed.rss.tmp" &> /dev/null
mv "${WEBROOT}/blog/feed.rss.tmp" "${WEBROOT}/blog/feed.rss"