#!/bin/bash # create phlog entry, rebuild gophermap # requires the text formating utility 'par' root=$HOME/src/gopher/phlog mkdir -p $HOME/.tmp pushd "$(pwd)" cd $HOME/.tmp || exit editfile="phlogtmp.txt" articledate="$(date -R)" filedate="$(date +%Y-%m-%d-%H-%I)" read -r -p "Enter title: " title filetitle=$(echo $title | sed 's/ /-/g' | sed 's/[^A-Za-z0-9._-]//g') article=$filedate-$filetitle.txt dest="$root/$article" micro +4:1 "$editfile" # Justify article. This may fail if a # non-empty line doesn't contain spaces cat "$editfile" | par -jw67 > $article header="title:$title\ndate:$articledate\n$(printf '%*s' 66 | tr ' ' '-')\n\n" sed -i "1s/^/$header/" $article mv "$article" "$dest" rm $editfile echo "Article saved as $dest" # build gophermap cd $root echo "╔═══════════════════════════════════╗" > gophermap echo "║ Phil's Phlog ║" >> gophermap echo "╚═══════════════════════════════════╝" >> gophermap echo "" >> gophermap echo "0[Rss feed] /phlog/rss.xml spike.nagatha.fr 70" >> gophermap echo "" >> gophermap files=($(ls -1r *.txt)) for file in "${files[@]}"; do echo -e "0$(head -n 1 $file | sed s/title://g)\t/phlog/$file\tspike.nagatha.fr\t70" >> gophermap done popd exit 0