#!/bin/bash

codedir=/usr/lib/obs/server
datadir=/srv/obs

outdir="$datadir/stats"
tmpoutdir="$outdir/.generate.$$"

cd "$datadir/log" || exit 1

sel="$1"
shift
if test -z "$sel" ; then
  sel=$(date -u '+%Y%m%d')
fi
test -n "$sel" || exit 1

rm -rf "$tmpoutdir"

for l in src_server.log-*.xz scheduler_*.xz rep_server.log-*.xz signer.log-*.xz publisher.log-*.xz dispatcher.log-*.xz servicedispatch.log-*.xz getbinariesproxy.log-*.xz ; do
  arch=
  t=
  case $l in
    *$sel*) ;;
    *) continue
  esac
  case $l in
    *.crit.log-*)
      continue
      ;;
    scheduler_*)
      arch=${l#scheduler_}
      arch=${arch%%.*}
      t=scheduler
      ;;
    src_server*)
      t=srcserver
      ;;
    rep_server*)
      t=repserver
      ;;
    signer*)
      t=signer
      ;;
    publisher*)
      t=publisher
      ;;
    dispatcher*)
      t=dispatcher
      ;;
    servicedispatch*)
      t=servicedispatch
      ;;
    getbinariesproxy*)
      t=getbinariesproxy
      ;;
  esac
  echo "$l -> $t $arch"
  xzdec < $l | "$codedir/bs_statistics" generate -t $t -o "$tmpoutdir/%F.stat" "$@" $arch
done
"$codedir/bs_statistics" combine -o "$outdir/%Y/%M-%D.stat" "$tmpoutdir"/*.stat
rm -rf "$tmpoutdir"

