1#!/bin/sh 2 3PROG=`basename $0` 4 5usage() { 6 echo "usage: $PROG begin_time end_time [keys...]" 7} 8 9if [ $# -lt 2 ]; then 10 usage 11 exit 1 12fi 13 14begin=$1 15end=$2 16 17shift 2 18keys="${@:-eventdb:events}" 19 20entries_per_call=300 21begin_index=0 22end_index=$(($begin_index+$entries_per_call-1)) 23comma="" 24 25# process_step return values 26FLAG_DONE=0 27FLAG_COMMA=1 28FLAG_NOTHING=2 29 30process_step() { 31 redis-cli -s /var/run/appflow/redis.sock --eval /usr/bin/filter_events_by_time.lua $keys , $begin $end $begin_index $end_index | \ 32 { 33 local setcomma=$FLAG_NOTHING 34 local empty_output=yes 35 while read line; do 36 empty_output=no 37 [ -z "$line" ] && continue 38 [ "$line" = "done" ] && return $FLAG_DONE 39 if [ $setcomma -eq $FLAG_NOTHING ]; then 40 echo $comma 41 setcomma=$FLAG_COMMA 42 else 43 echo , 44 fi 45 echo $line 46 done 47 [ $empty_output = yes ] && return $FLAG_DONE 48 return $setcomma 49 } 50} 51 52echo "{\"events\": [" 53 54while true; do 55 process_step && break 56 [ $? -eq $FLAG_COMMA ] && comma="," 57 begin_index=$((end_index+1)) 58 end_index=$(($begin_index+$entries_per_call-1)) 59done 60 61echo "]}" 62