forked from HPR/hpr-tools
		
	Moved project directories and files to an empty local repo
This commit is contained in:
		
							
								
								
									
										133
									
								
								Show_Submission/do_brave
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										133
									
								
								Show_Submission/do_brave
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,133 @@ | ||||
| #!/bin/bash - | ||||
| #=============================================================================== | ||||
| # | ||||
| #         FILE: do_brave | ||||
| # | ||||
| #        USAGE: ./do_brave <epno> | ||||
| # | ||||
| #  DESCRIPTION: Run the Brave browser to view completed notes | ||||
| # | ||||
| #      OPTIONS: --- | ||||
| # REQUIREMENTS: --- | ||||
| #         BUGS: 2020-06-01: New version of Brave (now called 'brave-browser') | ||||
| #               necessitates changes in how this script was originally | ||||
| #               designed. The softlink between hpr????.out and hpr????.html | ||||
| #               has been converted to a hard link. | ||||
| #        NOTES: We use a link 'do_browser' to point to whichever script runs | ||||
| #               the preferred browser. It's been Brave for several years now, | ||||
| #               but we haven't changed this! | ||||
| #               2022-12-22: We now write state changes to the file .status in | ||||
| #               the show directory, so we need to do that here too. Also | ||||
| #               changed to using the function library for cleanup_temp. | ||||
| #       AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com | ||||
| #      VERSION: 0.0.5 | ||||
| #      CREATED: 2016-03-20 15:22:29 | ||||
| #     REVISION: 2022-12-22 17:28:12 | ||||
| # | ||||
| #=============================================================================== | ||||
|  | ||||
| set -o nounset                              # Treat unset variables as an error | ||||
|  | ||||
| SCRIPT=${0##*/} | ||||
| #DIR=${0%/*} | ||||
|  | ||||
| # | ||||
| # 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" | ||||
|  | ||||
| # | ||||
| # Basic validation | ||||
| # | ||||
| if [[ $# -ne 1 ]]; then | ||||
|     echo "Usage $SCRIPT shownumber" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Directories and files | ||||
| # | ||||
| BASENAME="$HOME/HPR/Show_Submission" | ||||
| SHOWDIR="$BASENAME/shownotes/hpr${1}" | ||||
| RAWNOTES="$SHOWDIR/hpr${1}.out" | ||||
| HTML="$SHOWDIR/hpr${1}.html" | ||||
| FULLHTML="$SHOWDIR/hpr${1}_full.html" | ||||
| STATUSFILE="$SHOWDIR/.status" | ||||
|  | ||||
| HTMLFILE="$FULLHTML" | ||||
|  | ||||
| # | ||||
| # Check we have this browser | ||||
| # | ||||
| BRAVE=$(command -v brave-browser) | ||||
| [[ -v BRAVE ]] || { echo "Problem finding the Brave browser"; exit 1; } | ||||
|  | ||||
| # | ||||
| # We prefer to view the 'full' html which we do by default. If not found | ||||
| # (because the host sent in HTML themselves) we look for hpr????.html, which | ||||
| # is a link to the notes from the form (hpr????.out), and view that. If the | ||||
| # link didn't get created (not sure why) we copy the "raw" notes to | ||||
| # a temporary file with an '.html' extension (TODO: we could just make a link | ||||
| # here). Otherwise we found nothing viewable. | ||||
| # | ||||
| if [[ ! -e $FULLHTML ]]; then | ||||
|     if [[ -e $HTML ]]; then | ||||
|         echo "No full HTML found, viewing $HTML instead" | ||||
|         HTMLFILE="$HTML" | ||||
|     elif [[ -e $RAWNOTES ]]; then | ||||
|         echo "No files with ''.HTML' suffix, viewing raw notes" | ||||
|  | ||||
|         TMP1=$(mktemp '/tmp/notes_XXXXXX.html') || { echo "$SCRIPT: creation of temporary file failed!"; exit 1; } | ||||
|         trap 'cleanup_temp $TMP1' SIGHUP SIGINT SIGPIPE SIGTERM EXIT | ||||
|  | ||||
|         cp "$RAWNOTES" "$TMP1" | ||||
|         HTMLFILE="$TMP1" | ||||
|     else | ||||
|         echo "Nothing to view, giving up" | ||||
|         exit | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| # | ||||
| # Open a parent instance of Brave (in the background), then open the HTML | ||||
| # notes after a short delay, thereby ensuring they open in a tab rather than | ||||
| # in another window.  Brave has great potential but documentation is a bit | ||||
| # sparse. | ||||
| # NOTE: We're using debug statements for the moment until this method is shown | ||||
| # to be a good one. | ||||
| # | ||||
| # if [[ $(pgrep -u "$USER" -f '/usr/bin/brave-browser' -c) -eq 0 ]]; then | ||||
| #     echo "D> Starting parent browser" | ||||
| #     $BRAVE > /dev/null 2>&1 & | ||||
| #     echo "D> Delaying ..." | ||||
| #     sleep 3 | ||||
| # fi | ||||
| # | ||||
| # 2020-11-29 Looks like the parent + child model doesn't work any more (they | ||||
| # keep changing this browser!). Also, just running the browser doesn't return | ||||
| # to the command line any more so it seems to need to be in the background. | ||||
| # | ||||
| # echo "D> Starting browser tab" | ||||
| echo "D> Starting browser itself" | ||||
| $BRAVE "${HTMLFILE}" > /dev/null 2>&1 & | ||||
| # $BRAVE "${HTMLFILE}&" | ||||
| # $BRAVE "${HTMLFILE}" | ||||
| RES=$? | ||||
|  | ||||
| if [[ $RES -eq 0 ]]; then | ||||
|     # | ||||
|     # Update the status file | ||||
|     # | ||||
|     echo "rendered" >> "$STATUSFILE" || \ | ||||
|         { echo "Failed to update $STATUSFILE"; exit 1; } | ||||
| else | ||||
|     echo "Oops! Something went wrong!" | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| exit | ||||
|  | ||||
| # vim: syntax=sh:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21 | ||||
		Reference in New Issue
	
	Block a user