forked from kamba4/sunders
		
	
		
			
				
	
	
		
			93 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| exedir=$(cd `dirname "$0"`; pwd)
 | |
| 
 | |
| REPLICATE_URL=`grep "REPLICATE_URL" "$exedir/config.php"  | sed -e 's/.*http/http/' -e 's#...$##' `
 | |
| 
 | |
| if [ -e "/var/lock/update_camera" ]
 | |
| then
 | |
|   # Maybe an other update is running
 | |
|   otherPid=$(cat "/var/lock/update_camera")
 | |
|   count=$(ps $otherPid | grep -c `basename "$0"`)
 | |
| 
 | |
|   if [ $count -gt 0 ]
 | |
|   then
 | |
|     echo "$0 is running yet. Exiting." >&2
 | |
|     exit 1
 | |
|   fi
 | |
| fi
 | |
| 
 | |
| # OK. We can update the database...
 | |
| echo $$ >  "/var/lock/update_camera"
 | |
| 
 | |
| exeDir=$(cd `dirname "$0"`; pwd);
 | |
| cd "$exeDir"
 | |
| 
 | |
| if [ -e "state.txt" ]
 | |
| then
 | |
|   rm "state.txt"
 | |
| fi
 | |
| 
 | |
| #TODO get state from db
 | |
| # Read the last update timestamp
 | |
| # lastTimestamp=$(grep "^timestamp=" "lastState.txt" | cut -d'=' -f2-)
 | |
| # lastSeqNum=$(grep "^sequenceNumber=" "lastState.txt" | cut -d'=' -f2-)
 | |
| 
 | |
| lastSeqNum=$(php get_sync_state.php)
 | |
| 
 | |
| curl -L "$REPLICATE_URL/state.txt" -o state.txt 
 | |
| 
 | |
| newTimestamp=$(grep "^timestamp=" "state.txt" | cut -d'=' -f2-)
 | |
| newSeqNum=$(grep "^sequenceNumber=" "state.txt" | cut -d'=' -f2-)
 | |
| 
 | |
| if [ $newSeqNum -eq $lastSeqNum ]
 | |
| then
 | |
|   echo "No new file to be processed"
 | |
|   exit 1
 | |
| fi
 | |
| mkdir logs
 | |
| curSeqNum=$lastSeqNum
 | |
| while [ $curSeqNum -lt $newSeqNum ]
 | |
| do
 | |
|   curSeqNum=$(( $curSeqNum + 1 ))
 | |
| 
 | |
|   logFileName="logs/log.$curSeqNum"
 | |
| 
 | |
|   if [ -e "change_file.osc" ]
 | |
|   then
 | |
|     rm "change_file.osc"
 | |
|   fi
 | |
| 
 | |
|   if [ -e "change_file.osc.gz" ]
 | |
|   then
 | |
|     rm "change_file.osc.gz"
 | |
|   fi
 | |
| 
 | |
|   echo `date "+%d/%m/%Y %H:%M"`" - Start processing sequence number $curSeqNum of $newSeqNum" > "$logFileName"
 | |
| 
 | |
|   targetDirName=`echo "000000000$curSeqNum" | sed 's#.*\(...\)\(...\)\(...\)$#\1/\2/\3.osc.gz#'`
 | |
|   targetDirName="$REPLICATE_URL/$targetDirName"
 | |
| 
 | |
|   curl -L "$targetDirName" -o change_file.osc.gz 2>&1 | tee -a $logFileName
 | |
|   if [ $? -gt 0 ]
 | |
|   then
 | |
|     echo "Error during recovery of $targetDirName" | tee -a $logFileName
 | |
|     exit 1
 | |
|   fi
 | |
| 
 | |
|   gunzip change_file.osc.gz 2>&1 | tee -a $logFileName
 | |
|   if [ $? -gt 0 ]
 | |
|   then
 | |
|     echo "Error during decompression of $targetDirName" | tee -a $logFileName
 | |
|     exit 1
 | |
|   fi
 | |
| 
 | |
|   php update_camera.php $curSeqNum 2>&1 | tee -a $logFileName
 | |
| 
 | |
|   targetDirName=`echo "$targetDirName" | sed 's/.osc.gz$/.state.txt/'`
 | |
| 
 | |
|   curl -L "$targetDirName" -o lastState.txt 2>&1 | tee -a $logFileName
 | |
|   echo `date "+%d/%m/%Y %H:%M"`" - Finish processing sequence number $curSeqNum of $newSeqNum" | tee -a "$logFileName"
 | |
| done
 | |
| 
 | |
| rm "/var/lock/update_camera"
 |