forked from HPR/hpr-tools
		
	
		
			
	
	
		
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			115 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #!/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 | ||
|  | 
 |