#!/bin/ksh
#
# send_server_doku
#
# Speichert Dokumentation zu einem Server in der Loggingdatenbank ber einen
# httpget-Aufruf
#
# Aufruf:
#
# send_server_doku [-d storepath] [-S] [-h hostname] name beschreibung date time dokupfad
#
###################################################################################
#
if [ -f /etc/uls/uls.conf ]
 then
  . /etc/uls/uls.conf
fi
if [ -z "$ULSHOSTNAME" ]
 then
  ULSHOSTNAME=`hostname`
fi
#
if [ -z "$ULSSERVER" ]
 then
  ULSSERVER="STORE"
fi
#
ULSSEND="STORE"
ACC="all"
#
while getopts d:Sh:nN:us:? op
 do
  case "$op" in
    d) LOKALER_TEST_PFAD="$OPTARG";;
    S) ULSSEND="$ULSSERVER";;
    h) ULSHOSTNAME=$OPTARG;;
    s) ACC=$OPTARG;;
    *) echo "usage: $0 [-d storepath] [-S] [-h hostname] name beschreibung date time dokupfad"
       exit 1;;
  esac
done
shift $(( $OPTIND - 1))
#
if [ $# -ne 5 ]
 then
  echo "usage: $0 [-d storepath] [-S] [-h hostname] name beschreibung date time dokupfad"
  exit 1
fi
#
if [ "$ULSSEND" != "STORE" ]
 then
  if STATUS=`/usr/local/bin/httpget $SFLAGS -u logging -p lgput -s $ULSSERVER get_status.s2w?hostname=$ULSHOSTNAME`
   then
    if [ "$STATUS" != "OK" ]
     then
      ULSSEND="STORE"
    fi
  else
    ULSSEND="STORE"
  fi
fi
#
if [ -f $5 ]
 then
  #
  if [ "$ULSSEND" != "STORE" ]
   then
    RET=`/usr/local/bin/httpget $SFLAGS -u logging -p lgput -s -mf "$5" -mn $ULSHOSTNAME $ULSSERVER "doku_upload.s2w?fname=$ULSHOSTNAME&date=$3&time=$4&hostname=$ULSHOSTNAME&beschreibung=$2&name=$1"`
    if [ "$RET" = "OK" ]
     then
      exit 0
    fi
  fi
  #
  if [ -z "$LOKALER_TEST_PFAD" ]
   then
    LOKALER_TEST_PFAD=/tmp/uls
  fi
  #
  umask 077
  ULSDAT=dat-`id -u`.uls
  N="`echo \"$1\" | sed 's/\\([\"\\\\]\\)/\\\\\\1/g'`"
  B="`echo \"$2\" | sed 's/\\([\"\\\\]\\)/\\\\\\1/g'`"
  P="`basename \"$5\" | sed 's/\\([\"\\;\\\\]\\)/\\\\\\1/g'`"
  cp "$5" /tmp/ULSTMP.$$
  if cd "$LOKALER_TEST_PFAD" 2>/dev/null
   then
    test -f $ULSDAT || touch $ULSDAT && chmod 600 $ULSDAT
  else
    mkdir -m 1777 -p "$LOKALER_TEST_PFAD"
    if cd "$LOKALER_TEST_PFAD" 2>/dev/null
     then
      touch $ULSDAT && chmod 600 $ULSDAT
    else
      echo "Kann Lokales ULS-Verzeichnis: $LOKALER_TEST_PFAD nicht anlegen!"
      exit 1
    fi
  fi
  mv /tmp/ULSTMP.$$ $P.$$
  echo "S;$3 $4;$ULSHOSTNAME;\"$N\";\"$B\";;$P.$$;$P;$ACC" >>$ULSDAT
  exit 0
else
  echo "ERROR $0: Datei $5 nicht gefunden."
  exit 1
fi
