hpr-tools/Show_Submission/do_edit_shownotes

115 lines
2.9 KiB
Plaintext
Raw Permalink Normal View History

#!/bin/bash -
#===============================================================================
#
# FILE: do_edit_shownotes
#
# USAGE: ./do_edit_shownotes <field> <epno>
#
# 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