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