diff options
Diffstat (limited to 'phlogrss')
-rwxr-xr-x | phlogrss | 75 |
1 files changed, 39 insertions, 36 deletions
@@ -5,36 +5,36 @@ 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) +filename=$HOME/src/gopher/phlog/rss.xml +postdir=$HOME/src/gopher/phlog +builddate=$(date --iso-8601=ns) +buildyear=$(date +%Y) # Build RSS header & footer -header () { +build_header () { echo "<?xml version='1.0' encoding='UTF-8' ?> -<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>" > ~/feedtop -echo " -<channel> +<rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'>" > ~/header +echo "<channel> <title>Phil's Phlog</title> -<link>gopher://spike.nagatha.fr</link> -<description>A Gopher phlog from Brittany, France</description> -<lastBuildDate>$updated</lastBuildDate> +<link>gopher://spike.nagatha.fr/1/phlog</link> <atom:link href='$rsslink' rel='self' type='application/rss+xml' /> -" >> ~/feedtop +<language>en-us</language> +<copyright>© $buildyear Philip A. Wittamore - All Rights Reserved</copyright> +<lastBuildDate>$builddate</lastBuildDate> +<description>A Gopher phlog from Brittany, France</description> +" >> ~/header } -footer () { +build_footer () { echo " </channel> </rss> -" >> ~/feedbottom +" >> ~/footer } -# Function: Build Item add to feed - -item () { +build_item () { echo "<item> - <title>$fullTitle</title> + <title>$title</title> <pubDate>$postdate</pubDate> <link>$linkadd</link> <guid>$linkadd</guid> @@ -42,34 +42,37 @@ item () { </item>" >> ~/feed } -# Function: Concatenate everything - -combine () { - header - footer - cat ~/feedtop ~/feed > ~/feedtb - cat ~/feedtb ~/feedbottom > $feedname - rm ~/feedtop ~/feed ~/feedtb ~/feedbottom +build_xml_file () { + build_header + build_footer + cat ~/header ~/feed > ~/rss_tmp + cat ~/rss_tmp ~/footer > "$filename" + rm ~/header ~/feed ~/rss_tmp ~/footer } -# Run through files and create rss.xml +# list files and create rss.xml -if [[ -f $feedname ]]; then - rm $feedname +if [[ -f $filename ]]; then + rm "$filename" fi -touch $feedname -mapfile -t postArray < <(ls -t "$postDir"/*.txt) + +touch "$filename" +mapfile -t post_array < <(ls -t "$postdir"/*.txt) postNum=0 -for posts in "${postArray[@]}"; do + +for posts in "${post_array[@]}"; do ((postNum+=1)) post=$posts - fullTitle=$(head -n1 "$post" | sed 's/title://g') - postdate=$(cat $post | sed -n '2p' | sed 's/date://g') + 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) …" - item "$post" + description="$(cat "$post" | sed -n "/^$/,/^$/p" | head --lines 3) …" + build_item "$post" done - combine + + # put it all together + build_xml_file + exit |