#!/bin/bash
#
# send_test_tab
#
# Speichert logginginformationen in der Loggingdatenbank ueber einen httpget-Aufruf
#
# Aufruf:
#
# send_test_tab [-d storepath] [-S|-u ulsserver] [<Dateiname>]
#
###################################################################################
#
if [[ -f /etc/uls/uls.conf ]]
 then
  . /etc/uls/uls.conf
fi
#
if [[ -z "$ULSSERVER" ]]
 then
  ULSSERVER="STORE"
fi
#
ULSSEND="STORE"
#
while getopts d:Su:? op
 do
  case "$op" in
    d) ULS_TMP_PATH="$OPTARG";;
    S) ULSSEND="$ULSSERVER";;
    u) ULSSEND="$OPTARG";;
    *) echo "usage: `basename $0` [-d storepath] [-S|-u ulsserver] [<path>]"
       exit 1;;
  esac
done
shift $(( $OPTIND - 1))
#
if [[ $# -ne 1 && $# -ne 0 ]]
 then
  echo "usage: $0 [<pathname>]"
  exit 1
fi
#
if [[ -z "$ULSHOSTNAME" ]]
 then
  ULSHOSTNAME=`hostname`
fi
#
if [[ "$ULSSEND" != "STORE" ]]
 then
  if STATUS=`httpget $SFLAGS -u logging -p lgput -s $ULSSEND get_status.s2w?hostname=$ULSHOSTNAME`
   then
    if [[ "$STATUS" != "OK" ]]
     then
      ULSSEND="STORE"
    fi
  else
    ULSSEND="STORE"
  fi
fi
#
if [[ "$ULSSEND" != "STORE" ]]
 then
  if [[ $# -eq 1 ]]
   then
    RET=`httpget $SFLAGS -u logging -p lgput -s -mf "$1" -mn ULSTAB $ULSSEND "put_test_tab.s2w"`
  else
    RET=`httpget $SFLAGS -u logging -p lgput -s -mf "$1" -m- -mn ULSTAB $ULSSEND "put_test_tab.s2w"`
  fi
  test "$RET" = "OK"
else
  if [[ -z "$ULS_TMP_PATH" ]]
   then
    ULS_TMP_PATH=/var/tmp/uls
  fi
  umask 077
  if [[ $# -eq 1 ]]
   then
    cp $1 `dirname $ULS_TMP_PATH`/ULSTMP.$$
  else
    cat >`dirname $ULS_TMP_PATH`/ULSTMP.$$
  fi
  #
  ULSDAT=dat-`id -u`-`date '+%H%M%S'`$$.uls
  if cd "$ULS_TMP_PATH" 2>/dev/null
   then
    mv `dirname $ULS_TMP_PATH`/ULSTMP.$$ $ULSDAT
  else
    mkdir -m 1777 -p "$ULS_TMP_PATH"
    if cd "$ULS_TMP_PATH" 2>/dev/null
     then
      mv `dirname $ULS_TMP_PATH`/ULSTMP.$$ $ULSDAT
    else
      echo "Kann Lokales ULS-Verzeichnis: $ULS_TMP_PATH nicht anlegen!"
      exit 1
    fi
  fi
  exit 0
fi
