#!/bin/bash - #=============================================================================== # # FILE: do_edit_shownotes # # USAGE: ./do_edit_shownotes # # DESCRIPTION: Edit one of the fields often needing work in # shownotes.{json,txt}, writing the updates back to the HPR # server in case they are needed there. # # ** Under development, not properly tested ** # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: 2022-12-20: The shownotes.txt file is now obsolete # AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com # VERSION: 0.0.3 # CREATED: 2022-12-09 21:52:29 # REVISION: 2023-07-29 18:26:04 # #=============================================================================== set -o nounset # Treat unset variables as an error SCRIPT=${0##*/} # DIR=${0%/*} VERSION="0.0.3" if [[ $# -ne 2 ]]; then echo "[${SCRIPT} ${VERSION}]: Usage: $SCRIPT field shownumber" exit fi # # Collect arguments and validate them # field="${1,,}" showno="$2" field="${field// /}" showno="${showno// /}" if ! [[ $field =~ ^(tags|title|summary) ]]; then echo "Invalid field: $field" exit 1 fi if ! [[ $showno =~ ^[0-9]+$ ]]; then echo "Invalid show number: $showno" exit 1 fi # # Constants, paths and files # BASENAME="$HOME/HPR/Show_Submission" SHOWDIR="$BASENAME/shownotes/hpr${showno}" # SHOWNOTES="$SHOWDIR/shownotes.txt" # SNORIG="$SHOWDIR/shownotes.txt.orig" JSONNOTES="$SHOWDIR/shownotes.json" JSONORIG="$SHOWDIR/shownotes.json.orig" ORIGIN="$SHOWDIR/.origin" EDITSN="$BASENAME/edit_shownotes" STATUSFILE="$SHOWDIR/.status" DEST="hpr@hackerpublicradio.org:upload" SSHPORT=22 # # Collect the place to write results and the current MD5 sum of the JSON file # upload_dir=$(cat "$ORIGIN") MD5_1=$(md5sum "$JSONNOTES") # # Run the editing program # echo "Editing $field for show $showno" $EDITSN -field="$field" -episode="$showno" RES=$? # # Normal exit (0) means something was done. Anything else either means the # program aborted in a controlled way or there was an error. # if [[ $RES -eq 0 ]]; then echo "Edited show notes ok" MD5_2=$(md5sum "$JSONNOTES") if [[ $MD5_1 = "$MD5_2" ]]; then echo "The files were not changed" exit else echo "Copying $JSONNOTES to upload/$upload_dir/shownotes.json on the HPR server" echo "Copying $JSONORIG to upload/$upload_dir/shownotes.json.orig on the HPR server" # scp -P 22074 "$JSONNOTES" "$JSONORIG" "hpr@hackerpublicradio.org:upload/$upload_dir/" scp -P $SSHPORT "$JSONNOTES" "$JSONORIG" "$DEST/$upload_dir/" # # Update the status file # echo "metadata" >> "$STATUSFILE" || \ { echo "Failed to update $STATUSFILE"; exit 1; } fi else echo "Editing script ended prematurely" fi exit # vim: syntax=sh:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21