forked from HPR/hpr-tools
		
	Moved project directories and files to an empty local repo
This commit is contained in:
		
							
								
								
									
										116
									
								
								Show_Submission/copy_shownotes
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										116
									
								
								Show_Submission/copy_shownotes
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| #!/usr/bin/env bash | ||||
| #=============================================================================== | ||||
| # | ||||
| #         FILE: copy_shownotes | ||||
| # | ||||
| #        USAGE: ./copy_shownotes | ||||
| # | ||||
| #  DESCRIPTION: Copies the shownotes (and related files) downloaded from the | ||||
| #               HPR server. This happens after 'sync_hpr' has been run to | ||||
| #               collect updates from the ~hpr/upload/ directory on the server | ||||
| #               and store the result in the local upload/ directory. | ||||
| #               2022-12-17: Converted to shownotes.json. | ||||
| # | ||||
| #      OPTIONS: --- | ||||
| # REQUIREMENTS: --- | ||||
| #         BUGS: --- | ||||
| #        NOTES: --- | ||||
| #       AUTHOR: Dave Morriss (djm), Dave.Morriss@gmail.com | ||||
| #      VERSION: 0.0.10 | ||||
| #      CREATED: 2015-09-16 21:51:15 | ||||
| #     REVISION: 2023-07-01 22:48:53 | ||||
| # | ||||
| #=============================================================================== | ||||
|  | ||||
| set -o nounset                              # Treat unset variables as an error | ||||
|  | ||||
| SCRIPT=${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" | ||||
|  | ||||
| # | ||||
| # Colour codes | ||||
| # | ||||
| define_colours | ||||
|  | ||||
| # | ||||
| # Directories | ||||
| # | ||||
| BASEDIR="$HOME/HPR/Show_Submission" | ||||
| LOGS="$BASEDIR/logs" | ||||
| UPLOAD="$BASEDIR/upload" | ||||
| CACHE="$BASEDIR/shownotes" | ||||
|  | ||||
| # | ||||
| # Filenames | ||||
| # | ||||
| LOGFILE="$LOGS/${SCRIPT}.log" | ||||
| #SHOWNOTES='shownotes.txt' | ||||
| SHOWNOTES='shownotes.json' | ||||
| ORIGIN='.origin' | ||||
| STATUS='.status' | ||||
| DUMMY='.dummy' | ||||
|  | ||||
| # | ||||
| # Loop through everything in the $UPLOAD directory using a regular expression | ||||
| # to find sub-directories. These look like: | ||||
| # 1445633350_1906_2015-11-23_f348faf9125c129c1ebe0dd0edd721a0562a9d464bbbf | ||||
| # | ||||
| # The regex used in find takes into account that it needs to match the full | ||||
| # path. | ||||
| # | ||||
| count=0 | ||||
| target=".*/[0-9]+_[0-9]{4}_[0-9]{4}-[0-9]{2}-[0-9]{2}_.+$" | ||||
| while read -r d | ||||
| do | ||||
|     # | ||||
|     # Parse out the show number | ||||
|     # | ||||
|     show="$(echo "$d" | cut -f2 -d_)" | ||||
|     from="$UPLOAD/$d/" | ||||
|     dir="$CACHE/hpr${show}" | ||||
|     to="$dir/$SHOWNOTES" | ||||
|     origin="$dir/$ORIGIN" | ||||
|     status="$dir/$STATUS" | ||||
|     dummy="$dir/$DUMMY" | ||||
|  | ||||
|     # | ||||
|     # Make the receiving directory if it doesn't exist | ||||
|     # | ||||
|     if [[ ! -e $dir ]]; then | ||||
|         mkdir "$dir" | ||||
|     fi | ||||
|  | ||||
|     # | ||||
|     # Copy files if there are no shownotes or the file exists and is empty. | ||||
|     # | ||||
|     # 2022-12-17: We're soon not using shownotes.txt any more. The data is in | ||||
|     # shownotes.json instead. Also, dummy shows have a '.dummy' file rather | ||||
|     # than empty notes. | ||||
|     # | ||||
|     # if [[ ! -e $to || ! -s $to ]]; then | ||||
|     if [[ ! -e $to || -e $dummy ]]; then | ||||
|         rsync -vaP "$from" "${dir}/" | ||||
|         echo "$d" > "$origin" | ||||
|         echo "copied" > "$status" | ||||
|         ((count++)) | ||||
|         printf '%(%F %T)T %s\n' -1 "$dir" >> "$LOGFILE" | ||||
|         echo "${green}Copied notes for show $show${reset}" | ||||
|     fi | ||||
| done < <(find "$UPLOAD" -maxdepth 1 -regextype posix-egrep -regex "$target" -type d -printf '%f\n') | ||||
|  | ||||
| if [[ $count -eq 0 ]]; then | ||||
|     echo "${yellow}Nothing to do${reset}" | ||||
| else | ||||
|     echo "${green}Notes copied: $count${reset}" | ||||
| fi | ||||
|  | ||||
| exit | ||||
|  | ||||
| # vim: syntax=sh:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21 | ||||
		Reference in New Issue
	
	Block a user