#!/usr/pkg/bin/bash # # Publish named file from staging dir to blog dir. # # Call with -u to update the timestamp cache for all posts at the same # time. # Call with -f to publish the named file # Call with -g to use gopher directories, rather than the default blog # directories # Call with -o to force overwrite of an existing post. # # License GPLv3 or later by slugmax@tx0.org # fflag= uflag= oflag= gflag= while getopts 'ougf:' OPTION do case $OPTION in g) gflag=1 ;; f) fflag=1 fval="$OPTARG" ;; u) uflag=1 ;; o) oflag=1 ;; ?) printf "Usage: %s [-g] [-o] [-u] [-f filename]\n" $(basename $0) >&2 esac done shift $(($OPTIND - 1)) # Edit BLOGDIR and POSTDIR to suit if [ "$gflag" ]; then BLOGDIR="$HOME/gopher/dat" POSTDIR="$HOME/docs/phlog" else BLOGDIR="$HOME/html/motd/journal/entries" POSTDIR="$HOME/docs/posts" fi if [ "$fflag" ]; then if [ ! -d $(dirname $BLOGDIR/$fval) ]; then echo "Creating $(dirname $BLOGDIR/$fval)" mkdir -p $(dirname $BLOGDIR/$fval) chmod 751 $(dirname $BLOGDIR/$fval) fi if [ -e "$BLOGDIR/$fval" ]; then if [ "$oflag" ]; then echo "Publishing $fval to $BLOGDIR, overwriting existing post as you requested..." cp -f $POSTDIR/$fval $BLOGDIR/$fval chmod 644 $BLOGDIR/$fval else echo "Post $BLOGDIR/$fval exists - use the overwrite flag (-o) to force overwrite of an existing post" fi else echo "Publishing $fval to $BLOGDIR/$fval..." cp $POSTDIR/$fval $BLOGDIR/$fval chmod 644 $BLOGDIR/$fval fi fi if [ "$uflag" ]; then g='' if [ "$gflag" ]; then g='-g' fi if [ "$fflag" ]; then echo "Updating the timestamp cache for $fval [$HOME/bin/upd $g -u -f $fval]..." $HOME/bin/upd $g -u -f $fval else echo "Updating all entries in the timestamp cache [$HOME/bin/upd $g -u]..." $HOME/bin/upd $g -u fi fi