Compare commits
	
		
			14 Commits
		
	
	
		
			2c3b5056ae
			...
			2.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 8a8845d898 | |||
| 65be246673 | |||
| eabf56ed93 | |||
| d55b13ecbf | |||
| cc8a7710a1 | |||
| ad83090b05 | |||
| 684c237ac1 | |||
| 23c0090a47 | |||
| e57ec6de50 | |||
| c790dd6736 | |||
| 6e3666cea2 | |||
| 7379df38de | |||
| 2a915fec69 | |||
| fa0e9907ee | 
| @@ -25,7 +25,7 @@ cd www | ||||
|  | ||||
| Then in a web browser, navigate to `localhost:8080`. | ||||
|  | ||||
| ## TODO | ||||
| ## TODO Items | ||||
|  | ||||
| All goals are currently completed. | ||||
|  | ||||
|   | ||||
							
								
								
									
										64
									
								
								cronjob.sh
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								cronjob.sh
									
									
									
									
									
								
							| @@ -4,29 +4,63 @@ | ||||
| #  project so that docker container can do periodic git pulls rather than having | ||||
| #  to reload /rebuild the container each time a release is pushed out. | ||||
|  | ||||
| ## Setup ## | ||||
|  | ||||
| DIR="$(dirname -- "${BASH_SOURCE[0]}")" | ||||
| PROG="$(basename -- "${BASH_SOURCE[0]}")" | ||||
| cd $DIR | ||||
| DIR="`pwd`" | ||||
| NAME="'$PROG'" | ||||
|  | ||||
| function reload-project { | ||||
| 	## Kill node.js which will complete run.sh and restart any Docker containers. | ||||
| 	#pkill node | ||||
| 	# Do not kill program, just use the new files and if run.sh or main.js were | ||||
| 	#  changed then they can get reloaded manually or by the nightly backup. | ||||
| 	echo "Project reloaded successfully!" | ||||
| function log { | ||||
| 	echo -e "`date` : $NAME - $1" | ||||
| } | ||||
|  | ||||
| echo "*** Running '$DIR/$PROG' @ `date` ***" | ||||
| cd $DIR | ||||
| function kill-project { | ||||
| 	# Kill node.js which will complete run.sh and restart any Docker containers. | ||||
| 	# This is more intended towards Development and Stage sites since Production | ||||
| 	#  will only see git changes when a pull request is manually completed. | ||||
| 	log "Stopping continuous processes!" | ||||
| 	pkill node | ||||
| } | ||||
|  | ||||
| function reload-project { | ||||
| 	# Nothing to do, run.sh and main.js automatically uses the latest files. | ||||
| 	log "Project reloaded successfully!" | ||||
| } | ||||
|  | ||||
| ## Main ## | ||||
|  | ||||
| # Pull any updates, and if the project is already up to date, exit successfully. | ||||
| git pull | grep -v "up to date" | ||||
| status="$?" | ||||
| echo "* Pull status is '$status'." | ||||
| if [[ $status != 0 ]]; then | ||||
| 	echo "* Site is already up to date, exiting." | ||||
| 	exit 0 | ||||
| else | ||||
| output="`git pull`" | ||||
| git_status="$?" | ||||
|  | ||||
| echo "$output" | grep -v "up to date" | ||||
| grep_status="$?" | ||||
|  | ||||
| log "Pull status is '$git_status', checking for changes is '$grep_status'." | ||||
|  | ||||
| # Check whether the continuously running jobs have been updated. | ||||
| echo "$output" | grep "main.js" | ||||
| main_changed="$?" | ||||
| echo "$output" | grep "run.sh" | ||||
| run_changed="$?" | ||||
|  | ||||
| # Determine where we've landed and whether we need to do anything. | ||||
| if [[ $git_status != 0 ]]; then | ||||
| 	log "*** ERROR: Git reported a failure! ***" | ||||
| 	exit 1 | ||||
| elif [[ $git_status == 0 && ($main_changed == 0 || $run_changed == 0) ]]; then | ||||
| 	log "Either main ('$main_changed'), or run ('$run_changed') were changed!" | ||||
| 	kill-project | ||||
| elif [[ $git_status == 0 && $grep_status == 0 ]]; then | ||||
| 	reload-project | ||||
| elif [[ $git_status == 0 && $grep_status != 0 ]]; then | ||||
| 	log "Nothing to do. '$output'" | ||||
| else | ||||
| 	log "*** WARNING: Unknown Situation ***" | ||||
| fi | ||||
|  | ||||
| ## Success! ## | ||||
|  | ||||
| exit 0 | ||||
|   | ||||
| @@ -6,11 +6,6 @@ | ||||
| 	} | ||||
| 	$show_pics = $GLOBALS["SHOW_BANNER_PICS"]; | ||||
| 	$banner_width = $show_pics ? 6 : 12; | ||||
|  | ||||
| 	// TBD / TODO: | ||||
| 	// Check if user has vertical screen? | ||||
| 	// Is that possible in this environment? | ||||
| 	//$image_width = $vertical_screen ? 6 : 3; | ||||
| ?> | ||||
| 		<a href='/about/'> | ||||
| 			<div class="row"> | ||||
|   | ||||
							
								
								
									
										28
									
								
								run.sh
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								run.sh
									
									
									
									
									
								
							| @@ -6,7 +6,12 @@ | ||||
|  | ||||
| DIR="$(dirname -- "${BASH_SOURCE[0]}")" | ||||
| PROG="$(basename -- "${BASH_SOURCE[0]}")" | ||||
| echo "$DIR/$PROG" | ||||
|  | ||||
| # Ensure we are executing from this file's directory. | ||||
| cd $DIR | ||||
| DIR="`pwd`" | ||||
| NAME="'$DIR/$PROG'" | ||||
| echo $NAME | ||||
|  | ||||
| ## Functions ## | ||||
|  | ||||
| @@ -27,13 +32,15 @@ function log { | ||||
| 	echo -e "`date` - $message" | ||||
| } | ||||
|  | ||||
| log "Local process information:" | ||||
| ps $$ | ||||
| function check_main { | ||||
| 	if [[ -z "$1" ]]; then | ||||
| 		echo "ERROR: Subprocess name was not provided. $1" | ||||
| 		exit 0 | ||||
| 	fi | ||||
| 	log "Subprocess '$1' checking if main process is still running..." | ||||
| 	ps $$ | ||||
| 	ps $$ >/dev/null | ||||
| 	status=$? | ||||
| 	if [[ $status != 0 ]]; then | ||||
| 		log "Process '$$' not found, '$1' from '$DIR/$PROG' exiting." | ||||
| @@ -62,9 +69,6 @@ fi | ||||
|  | ||||
| ## Build Environment ## | ||||
|  | ||||
| # Ensure we are executing from this file's directory. | ||||
| cd $DIR | ||||
|  | ||||
| sudo="" | ||||
| if [[ -z $LOGNAME ]]; then | ||||
| 	LOGNAME="`whoami`" | ||||
| @@ -75,25 +79,29 @@ if [[ $LOGNAME != "root" ]]; then | ||||
| fi | ||||
|  | ||||
| log "Check if any system dependencies need installed." | ||||
| progs="" | ||||
| if [[ ! `which php` ]]; then | ||||
| 	echo "- Installing PHP" | ||||
| 	$sudo apt-get install -y php-cli | ||||
| 	progs="$progs php-cli" | ||||
| fi | ||||
| if [[ ! `which node` ]]; then | ||||
| 	echo "- Installing Node" | ||||
| 	$sudo apt-get install -y nodejs | ||||
| 	progs="$progs nodejs" | ||||
| fi | ||||
| if [[ ! `which npm` ]]; then | ||||
| 	echo "- Installing NPM" | ||||
| 	$sudo apt-get install -y npm | ||||
| 	progs="$progs npm" | ||||
| fi | ||||
| if [[ ! `which curl` ]]; then | ||||
| 	echo "- Installing Curl" | ||||
| 	$sudo apt-get install -y curl | ||||
| 	progs="$progs curl" | ||||
| fi | ||||
| if [[ ! `which ps` ]]; then | ||||
| 	echo "- Installing PS" | ||||
| 	$sudo apt-get install -y procps | ||||
| 	progs="$progs procps" | ||||
| fi | ||||
| if [[ -n "$progs" ]]; then | ||||
| 	$sudo apt-get install -y $progs | ||||
| fi | ||||
|  | ||||
| # Directories and allowed page types are executable, others are not. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user