#!/bin/bash # create phlog entry, rebuild gophermap # requires the text formating utility 'par' root=$HOME/src/gopher/phlog remoteroot=/srv/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)" article="/tmp/gophermap.tmp" read -r -p "Enter title: " title filetitle=$(echo $title | sed 's/ /-/g' | sed 's/[^A-Za-z0-9._-]//g') dirname="$filedate-$filetitle" mkdir $root/$dirname #ssh spike mkdir $remoteroot/$dirname 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\n$articledate\n+$(printf '%*s' 65 | tr ' ' '-')+\n\n" sed -i "1s/^/$header/" $article dest="$root/$dirname/gophermap" 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 dirs=($(ls -dr */)) for dir in "${dirs[@]}"; do dt=$(echo $dir| cut -c 1-10) tt="$(head -n 1 $dir/gophermap)" echo -e "1$dt $tt\t/phlog/$dir\tspike.nagatha.fr\t70" >> gophermap done popd exit 0