#!/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 curSeqNum=$(( $curSeqNum + 1 )) while [ $curSeqNum -lt $newSeqNum ] do if [ -e "${curSeqNum}_filtered.osc" ] then rm "change_file.osc" cp ${curSeqNum}_filtered.osc change_file.osc php create_camera_update_statements.php $curSeqNum rm ${curSeqNum}_filtered.osc curSeqNum=$(( $curSeqNum + 1 )) else path=$(echo "$(printf "%09d" "$curSeqNum")" | sed -E "s#(...)(...)(...)#\1/\2/\3#") url="${REPLICATE_URL}/${path}.osc.gz" echo $url curl -sL "$url" -o "$curSeqNum.osc.gz" && gunzip "$curSeqNum.osc.gz" && python filter_osc.py ${curSeqNum} && rm ${curSeqNum}.osc fi done rm "/var/lock/update_camera"