#!/usr/bin/env bash # create phlog entry # requires the text formating utility 'par' # editor is micro pushd "$(pwd)" root=$HOME/src/gopher/phlog remoteroot=/srv/gopher/phlog mkdir -p $HOME/.tmp 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" # make local and remote dirs mkdir $root/$dirname #ssh spike mkdir $remoteroot/$dirname # edit text micro +4:1 "$editfile" # Justify article. This may fail if a # non-empty line doesn't contain spaces cat "$editfile" | par -jw67 > $article || cat "$editfile" > $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" echo "Run phlogmap to update the main gophermap" popd exit 0