115 lines
2.9 KiB
Bash
Executable File
115 lines
2.9 KiB
Bash
Executable File
#!/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
|
|
|