1#!/bin/sh
2
3keys="${@:-eventdb:events}"
4
5entries_per_call=300
6begin_index=0
7end_index=$(($begin_index+$entries_per_call-1))
8comma=""
9
10# process_step return values
11FLAG_DONE=0
12FLAG_COMMA=1
13FLAG_NOTHING=2
14
15process_step() {
16	redis-cli -s /var/run/appflow/redis.sock --eval /usr/bin/filter_events.lua eventdb:events , $begin_index $end_index open close milestone oversub | \
17	{
18		local setcomma=$FLAG_NOTHING
19		while read line; do
20			[ -z "$line" ] && continue
21			[ "$line" = "done" ] && return $FLAG_DONE
22			if [ $setcomma -eq $FLAG_NOTHING ]; then
23				echo $comma
24				setcomma=$FLAG_COMMA
25			else
26				echo ,
27			fi
28			echo $line
29		done
30		return $setcomma
31	}
32}
33
34echo "{\"events\": ["
35
36while true; do
37	process_step && break
38	[ $? -eq $FLAG_COMMA ] && comma=","
39	begin_index=$((end_index+1))
40	end_index=$(($begin_index+$entries_per_call-1))
41done
42
43echo "]}"
44