More involved script for updating SPC Tools. This includes some very user/system based items, so unless you are doing work just like I do, there is stuff in here you don't need.
Highlights
- It computes all of the images before moving them, which makes loading from a slow internet connection more stable
- Command line argument lets you specific subdirectories from /data/
- If more than one version is running, it will provide a warning. Two copies writing to the same directory can cause lots of confusion
- The system will run for 12 hours and then quit. It keeps this program from running in the background forever.
# Eric E. Palmer, Updated Feb 7th, 2016 # This waits a few seconds and updates the SPC output files # This will shutdown after a week # version 1.0 time=86400 # week time=`echo 60*60*12 | bc` # 12 hours # Define the subdirectory. #If given, it will use a subdirectory in data sub=$1 if [ "$sub" == "" ]; then running=`ps ax | grep $0 | grep -v grep | wc -l` num=`echo $running - 2 | bc` # I can't tell if someone is using data/ # Just give a warning if [ "$num" -gt "0" ]; then echo "################################" echo "##### Running in data/ directory" echo "There are $num other users of $0. You may have a conflict" ps ax | grep $0 | grep -v grep echo "################################" running=0 fi else running=`ps ax | grep $0 | grep -v grep | grep $sub | wc -l` sub="$sub/"; fi # Log the current start time, in seconds start=`date +%s` # Check to see if currently running in that directory #echo "### $running" if [ "$running" -gt "2" ]; then echo "We have a version of $0 $1 already running" ps ax | grep $0 | grep -v grep exit fi # Test to see if you are running on a Mac Server, or a normal mac. path="/Library/Server/Web/Data/Sites/Default/data/$sub" if [ -e $path ]; then path="/Library/Server/Web/Data/Sites/Default/data/$sub" echo " Machine: Server " else path="/Library/WebServer/Documents/data/$sub" echo " Machine: Local " fi # Test to see if the final path exists, error if it doesn't if [ ! -e $path ]; then echo $path does not exit exit fi valid=0; echo "Using $path" # Loop forever while [ 1 ] do # Create a secondary file and move it rather than destorying/overwrite # This allows a longer web-download if [ -e LMRK_DISPLAY1.pgm ]; then valid=1 convert LMRK_DISPLAY1.pgm landmarks.jpg /bin/mv -f $path/landmarks.jpg $path/old-landmarks.jpg /bin/mv -f landmarks.jpg $path/landmarks.jpg fi # Create a secondary file and move it rather than destorying/overwrite # This allows a longer web-download if [ -e LMRK_DISPLAY1.pgm ]; then valid=1 convert LMRK_DISPLAY1.pgm autoregister.jpg /bin/mv -f $path/autoregister.jpg $path/old-autoregister.jpg /bin/mv -f autoregister.jpg $path/autoregister.jpg fi if [ -e TEMPFILE.pgm ]; then valid=1 convert TEMPFILE.pgm register.jpg /bin/mv -f $path/register.jpg $path/old-register.jpg /bin/mv -f register.jpg $path/register.jpg # Not worrying about this fi if [ -e TEMPFILE.ppm ]; then valid=1 convert TEMPFILE.ppm $path/registerC.jpg fi # Push any file names 1.jpg to be displayed on the server if [ -e 1.jpg ]; then valid=1 cp 1.jpg $path/1.jpg fi # How long to wait between pushes sleep 3 # Compute how long this has been running current=`date +%s` delta=`echo $current - $start | bc` #echo $start, $current, $delta # quit if it has been running for a long time (week/month) if [ "$delta" -gt "$time" ]; then echo "You've run out of time" exit; fi # If we run through the loop and find no files to process, quit if [ "$valid" -eq "0" ]; then echo "No valid files -- processing stopping" break; fi done