aboutsummaryrefslogtreecommitdiff
path: root/phlogrss
diff options
context:
space:
mode:
Diffstat (limited to 'phlogrss')
-rwxr-xr-xphlogrss74
1 files changed, 74 insertions, 0 deletions
diff --git a/phlogrss b/phlogrss
new file mode 100755
index 0000000..2b24856
--- /dev/null
+++ b/phlogrss
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+phloglink="gopher://spike.nagatha.fr/0/phlog"
+description="Phil's Phlog"
+rsslink=gopher://spike.nagatha.fr/phlog/rss.xml
+feedname=$HOME/src/gopher/phlog/rss.xml
+postDir=$HOME/src/gopher/phlog
+updated=$(date --iso-8601=ns)
+
+# Build RSS header & footer
+header () {
+echo "<?xml version='1.0' encoding='UTF-8' ?>
+<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>" > ~/feedtop
+echo "
+<channel>
+<title>Phil&#39;s Phlog</title>
+<link>gopher://spike.nagatha.fr</link>
+<description>A Gopher phlog from Brittany, France</description>
+<lastBuildDate>$updated</lastBuildDate>
+<atom:link href='$rsslink' rel='self' type='application/rss+xml' />
+" >> ~/feedtop
+}
+
+footer () {
+echo "
+</channel>
+
+</rss>
+" >> ~/feedbottom
+}
+
+# Function: Build Item add to feed
+
+item () {
+ echo "<item>
+ <title>$fullTitle</title>
+ <pubDate>$postdate</pubDate>
+ <link>$linkadd</link>
+ <guid>$linkadd</guid>
+ <description>$description</description>
+</item>" >> ~/feed
+}
+
+# Function: Concatenate everything
+
+combine () {
+ header
+ footer
+ cat ~/feedtop ~/feed > ~/feedtb
+ cat ~/feedtb ~/feedbottom > $feedname
+ rm ~/feedtop ~/feed ~/feedtb ~/feedbottom
+}
+
+# Run through files and create rss.xml
+
+if [[ -f $feedname ]]; then
+ rm $feedname
+fi
+touch $feedname
+mapfile -t postArray < <(ls -t "$postDir"/*.txt)
+postNum=0
+for posts in "${postArray[@]}"; do
+ ((postNum+=1))
+ post=$posts
+ fullTitle=$(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) …"
+ item "$post"
+done
+ combine
+exit
+