Moved project directories and files to an empty local repo
This commit is contained in:
149
Show_Submission/do_parse
Executable file
149
Show_Submission/do_parse
Executable file
@@ -0,0 +1,149 @@
|
||||
#!/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
|
Reference in New Issue
Block a user