Show_Submission/copy_shownotes: Changed the location of the function library
Show_Submission/do_brave: Updates to the way local stand-alone HTML is generated for
    review purposes.
Show_Submission/do_index: Changed the location of the function library
Show_Submission/do_pandoc: Changed the location of the function library; now uses
    'author_title.pl' to generate YAML for Pandoc
Show_Submission/do_parse: Trivial change
Show_Submission/do_pictures: Changed the location of the function library; better
    handling of the show specification
Show_Submission/do_report: Changed the location of the function library
Show_Submission/do_update_reservations: Changed the location of the function library
Show_Submission/fix_relative_links: Added features 'say' and 'state'
Show_Submission/parse_JSON: New checks: notes too short, trailing spaces on title,
    summary and tags (needing JSON changes). Check for Markdown in the
    assets (see 'do_pandoc_assets'). New 'trim' function.
		
	
		
			
				
	
	
		
			151 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash -
 | |
| #===============================================================================
 | |
| #
 | |
| #         FILE: do_parse
 | |
| #
 | |
| #        USAGE: ./do_parse <epno>
 | |
| #
 | |
| #  DESCRIPTION: Run 'parse_JSON' on a given show
 | |
| #
 | |
| #      OPTIONS: ---
 | |
| # REQUIREMENTS: ---
 | |
| #         BUGS: ---
 | |
| #        NOTES: ---
 | |
| #       AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com
 | |
| #      VERSION: 0.0.15
 | |
| #      CREATED: 2016-05-14 14:21:34
 | |
| #     REVISION: 2022-10-01 21:49:32
 | |
| #
 | |
| #===============================================================================
 | |
| 
 | |
| set -o nounset                              # Treat unset variables as an error
 | |
| 
 | |
| SCRIPT=${0##*/}
 | |
| #DIR=${0%/*}
 | |
| VERSION="0.0.15"
 | |
| 
 | |
| #
 | |
| # Load library functions
 | |
| #
 | |
| LIB="$HOME/bin/function_lib.sh"
 | |
| [ -e "$LIB" ] || { echo "$SCRIPT: Unable to source functions"; exit 1; }
 | |
| # shellcheck source=/home/cendjm/bin/function_lib.sh
 | |
| source "$LIB"
 | |
| 
 | |
| #
 | |
| # Colour codes
 | |
| #
 | |
| define_colours
 | |
| 
 | |
| #
 | |
| # Process options
 | |
| #
 | |
| while getopts :fh opt
 | |
| do
 | |
|     case "${opt}" in
 | |
|         h) echo "Usage: $SCRIPT [-h] [-f] shownumber"; exit 0;;
 | |
|         f) FORCE=1;;
 | |
|         ?) echo "$SCRIPT: Invalid option; aborting"; exit 1;;
 | |
|     esac
 | |
| done
 | |
| shift $((OPTIND - 1))
 | |
| 
 | |
| FORCE="${FORCE:-0}"
 | |
| 
 | |
| if [[ $# -ne 1 ]]; then
 | |
|     echo "[${SCRIPT} ${VERSION}] Usage: ${red}$SCRIPT shownumber${reset}"
 | |
|     exit
 | |
| fi
 | |
| 
 | |
| show="$1"
 | |
| 
 | |
| BASENAME="$HOME/HPR/Show_Submission"
 | |
| SHOWDIR="$BASENAME/shownotes/hpr${show}"
 | |
| LOGDIR="$BASENAME/logs"
 | |
| #PARSER="$BASENAME/parse_shownotes"
 | |
| PARSER="$BASENAME/parse_JSON"
 | |
| PARSELOG="$LOGDIR/${PARSER##*/}.log"
 | |
| #FROM="$BASENAME/shownotes/hpr${show}/hpr${show}_shownotes.txt"
 | |
| #FROM="$BASENAME/shownotes/hpr${show}/shownotes.txt"
 | |
| FROM="$SHOWDIR/shownotes.json"
 | |
| TO="$SHOWDIR/hpr${show}.out"
 | |
| TOTPL="$SHOWDIR/hpr%d.out"
 | |
| SLINK="$SHOWDIR/hpr${show}.html"
 | |
| FMT="$SHOWDIR/.format"
 | |
| REL="$SHOWDIR/.release"
 | |
| PICTURES="$SHOWDIR/.pictures"
 | |
| ASSETS="$SHOWDIR/.assets"
 | |
| ZIP="$SHOWDIR/.backup.zip"
 | |
| #JSONTPL="$SHOWDIR/hpr%d.json"
 | |
| SHOWLOG="$SHOWDIR/error.log"
 | |
| 
 | |
| #
 | |
| # Sanity checks
 | |
| #
 | |
| [ -e "$PARSER" ] || {
 | |
|     echo "$SCRIPT: ${red}$PARSER not found${reset}"
 | |
|     exit 1
 | |
| }
 | |
| 
 | |
| if [[ ! -e $FROM ]]; then
 | |
|     echo "$SCRIPT: ${red}File not found: $FROM${reset}"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| #
 | |
| # Allow overwriting of the output file if the -f option is given. Also, if
 | |
| # there's a link delete it so parse_shownotes can re-create it (we use '-ef'
 | |
| # to check that the files have the same inode).
 | |
| #
 | |
| if [[ $FORCE -eq 0 ]]; then
 | |
|     if [[ -e $TO ]]; then
 | |
|         echo "$SCRIPT: ${red}The output file $TO already exists${reset}"
 | |
|         exit 1
 | |
|     fi
 | |
| else
 | |
|     if [[ $TO -ef $SLINK ]]; then
 | |
|         rm -f "$SLINK"
 | |
|     fi
 | |
| fi
 | |
| 
 | |
| if [[ ! -s $FROM ]]; then
 | |
|     echo "$SCRIPT: ${red}Input file $FROM is empty${reset}"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| #
 | |
| # Run the parser, don't validate, and use the show number argument. Read the
 | |
| # input file 'shownotes.txt' and generate an output file derived from the
 | |
| # template '$TOTPL'. Write a JSON version of the output and write the declared
 | |
| # format to a file for future reference.
 | |
| #
 | |
| # Updated 2021-02-23: Now we parse the incoming JSON file .shownotes.json'.
 | |
| # There's no validation and we don't write JSON output.
 | |
| #
 | |
| # $PARSER -novalid -ep "${show}" -in "$FROM" -show "$TOTPL" \
 | |
| #     -json "$JSONTPL" -format="$FMT"
 | |
| #
 | |
| $PARSER -ep "${show}" -in "$FROM" -show "$TOTPL" \
 | |
|     -format="$FMT" -release="$REL" -pictures="$PICTURES" -assets="$ASSETS" \
 | |
|     -zip="$ZIP"
 | |
| RES=$?
 | |
| 
 | |
| if [[ $RES -ne 0 ]]; then
 | |
|     echo "$SCRIPT: ${red}Oops! Something went wrong!${reset}"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| #
 | |
| # Make a reference copy of the output file
 | |
| #
 | |
| cp "$TO" "${TO%.out}.orig"
 | |
| 
 | |
| #
 | |
| # Grep the common log file for error reports relating to this show
 | |
| #
 | |
| grep -E "^$(date +%Y/%m/%d).+ \[ERROR\] $show" "$PARSELOG" >> "$SHOWLOG"
 | |
| 
 | |
| exit
 | |
| 
 | |
| # vim: syntax=sh:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21
 |