forked from HPR/hpr-tools
		
	
		
			
				
	
	
		
			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
 | 
						|
 |