#!/bin/ksh
#
# flush_test_values
#
# Verzeichnis (/tmp/uls) mit den gespeicherten ULS-Werten als .fpz-Datei
# verpackt ans ULS senden
#
# Aufruf:
#
# flush_test_values [-s <seks>] [<Verzeichnis>]
#
###################################################################################
#
PATH=/usr/local/bin:/usr/contrib/bin:$PATH
export PATH
#
if [ -f /etc/uls/uls.conf ]
 then
  . /etc/uls/uls.conf
else
  ULSHOSTNAME=`hostname`
fi
#
WS=""
#
while getopts s:? op
 do
  case "$op" in
    s) if echo "$OPTARG" | grep -q '^[0-9][0-9]*$'
        then
         WS=$OPTARG
       fi
       ;;
    *) echo "usage: `basename $0` [-s <seks>] [<path>]"
       exit 1;;
  esac
done
shift $(( $OPTIND - 1))
#
if echo "$WAITSEND" | grep -vq '^[0-9][0-9]*$'
 then
  WAITSEND=10
fi
#
if [ -z "$1" ]
 then
  TEST_PFAD=""
else
  if echo "$1" | grep -q '^/'
   then
    TEST_PFAD="$1"
  else
    TEST_PFAD="`pwd`/$1"
  fi
fi
#
if [ -z "$LOKALER_TEST_PFAD" ]
 then
  LOKALER_TEST_PFAD=/tmp/uls
fi
#
store()
{
  if cd "$LOKALER_TEST_PFAD" || (mkdir -m 1777 -p "$LOKALER_TEST_PFAD" && cd "$LOKALER_TEST_PFAD")
   then
    umask 077
    if [ `ls "$1"/* 2>/dev/null | wc -l` -gt 0 ]
     then
      for i in "$1"/*
       do
        cat $i >> `basename $i`
        rm $i
      done
      rmdir "$1"
    fi
  else
    echo "Kann Lokales ULS-Verzeichnis: $LOKALER_TEST_PFAD nicht anlegen!"
    exit 1
  fi
}

if [ $# -ge 1 ]
 then
  if [ -d "$TEST_PFAD" ]
   then
    if [ `id -u` -ne 0 ] && [ `ls -dn "$TEST_PFAD" | awk '{print $3}'` -ne `id -u` ]
     then
      echo "ERROR: $USER ist nicht der Owner des Verzeichnisses $TEST_PFAD."
      exit 1
    fi
    if [ ! -z "$WS" ]
     then
      sleep $WS
    fi 
    if [ -z "$ULSSERVER" -o "$ULSSERVER" = "STORE" ]
     then
      store "$1"
      exit 0
    fi
  else
    echo "ERROR: $1 ist kein Verzeichnis."
    exit 1
  fi
else
  if [ `id -u` -ne 0 ]
   then
    echo "ERROR: $USER hat keine root-Rechte!"
    exit 1
  fi
fi
#
if STATUS=`/usr/local/bin/httpget $SFLAGS -u logging -p lgput -s $ULSSERVER get_status.s2w?hostname=$ULSHOSTNAME`
 then
  if [ "$STATUS" = "OK" ]
   then
    if [ $# -ge 1 ]
     then
      TMPDIR="$TEST_PFAD"
    else
      TMPDIR="$LOKALER_TEST_PFAD.$$"
      mv "$LOKALER_TEST_PFAD" "$TMPDIR"
      mkdir -m 1777 -p "$LOKALER_TEST_PFAD"
      if [ -z "$WS" ]
       then
        sleep $WAITSEND
      else
        sleep $WS
      fi
    fi
    if cd "$TMPDIR"
     then
      RET=`/usr/local/bin/filepack -d . | gzip -1 | /usr/local/bin/httpget $SFLAGS -u logging -p lgput -s -mf "ulsdat.fpz" -m- -mn ULSDATA $ULSSERVER "put_test_fpz.s2w"`
      if [ "$RET" != "OK" ]
       then
        store $TMPDIR
      else
        rm -f $TMPDIR/*
        cd ..
        rmdir "$TMPDIR"
      fi
    fi
    exit 0
  fi
fi
if [ $# -ge 1 ]
 then
  store "$1"
fi
