#!/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 )) rm "change_file.osc" targetDirName=`echo "000000000$curSeqNum" | sed 's#.*\(...\)\(...\)\(...\)$#\1/\2/\3.osc.gz#'` targetDirName="$REPLICATE_URL/$targetDirName" curl -L "$targetDirName" -o change_file.osc.gz gunzip change_file.osc.gz 2>&1 php create_camera_update_statements.php $curSeqNum 2>&1 done rm "/var/lock/update_camera"