#!@zsh@/bin/zsh typeset -A opts zparseopts -A opts -M -- -delta: d:=-delta -interval: i:=-interval delta_t=${opts[--delta]:-20} interval=${opts[--interval]:-3600} staggerFile=~/.rss-stagger [[ "${FLOCKER}" != "$0" ]] && exec env FLOCKER="$0" flock -x "${staggerFile}" "$0" "$@" || : typeset -A feeds r2e list | while read num junk name junk; do num=${num%:} feeds[${num}]=${name} done max=$(($#feeds)) num=$(((max * delta_t) / interval)) [[ $num -lt 1 ]] && num=1 now=$(cat ${staggerFile} || echo 0) now=$((now % max)) typeset -a run run=() typeset -a names names=() n=0 for i in $(seq $((now + 1)) $((now + num + 1))); do n=$((i % max)) run+=$n names+=$feeds[${n}] done echo $n >! ${staggerFile} printf "Retrieving: %s\n" ${(j:, :)names} exec @rss2email@/bin/r2e run $run