SMOLNET PORTAL home about changes
#!/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
Response: text/plain
Original URLgopher://sdf.org/0/users/slugmax/code/publish
Content-Typetext/plain; charset=utf-8