#!/bin/bash


if [ -f "/etc/default/duplicati-influxdb" ]; then
export $(cat /etc/default/duplicati-influxdb)
fi

if [ -f "~/.config/duplicati-influxdb" ]; then
export $(cat ~/default/duplicati-influxdb)
fi

TAGS=""
MESSAGE_FIELD_VALUE=""


UNSCAPED=""
ESCAPED=""

escape_tag_str () {
    ESCAPED=${UNSCAPED//[ ]/\\ }
}

if [[ ! -z "$INFLUXDB_CLIENT_HOSTNAME" ]]; then
    UNSCAPED=$INFLUXDB_CLIENT_HOSTNAME
    escape_tag_str
    TAGS="${TAGS},host=${ESCAPED}"
    MESSAGE_FIELD_VALUE="${MESSAGE_FIELD_VALUE}${INFLUXDB_CLIENT_HOSTNAME} "
else
    if [[ ! -z "$HOSTNAME" ]]; then
        UNSCAPED=$HOSTNAME
        escape_tag_str
        TAGS="${TAGS},host=${ESCAPED}"
        MESSAGE_FIELD_VALUE="${MESSAGE_FIELD_VALUE}${HOSTNAME} "
    fi
fi

if [[ ! -z "$DUPLICATI__EVENTNAME" ]]; then
    UNSCAPED=$DUPLICATI__EVENTNAME
    escape_tag_str
    TAGS="${TAGS},eventName=\"${ESCAPED}\""
fi

if [[ ! -z "$DUPLICATI__OPERATIONNAME" ]]; then
    UNSCAPED=$DUPLICATI__OPERATIONNAME
    escape_tag_str
    TAGS="${TAGS},operationName=${ESCAPED}"
    MESSAGE_FIELD_VALUE="${MESSAGE_FIELD_VALUE}${DUPLICATI__OPERATIONNAME} "
fi

if [[ ! -z "$DUPLICATI__backup_name" ]]; then
    UNSCAPED=$DUPLICATI__backup_name
    escape_tag_str
    TAGS="${TAGS},backupName=${ESCAPED}"
    MESSAGE_FIELD_VALUE="${MESSAGE_FIELD_VALUE}${DUPLICATI__backup_name} "
fi

if [[ ! -z "$DUPLICATI__PARSED_RESULT" ]]; then
    UNSCAPED=$DUPLICATI__PARSED_RESULT
    escape_tag_str
    TAGS="${TAGS},status=${ESCAPED}"
    MESSAGE_FIELD_VALUE="${MESSAGE_FIELD_VALUE}${DUPLICATI__PARSED_RESULT} "
fi

if [[ ! -z "$DUPLICATI__RESULTFILE" ]]; then
    UNSCAPED=$DUPLICATI__RESULTFILE
    escape_tag_str
    TAGS="${TAGS},resultFile=${ESCAPED}"
fi

if [[ ! -z "$DUPLICATI__LOCALPATH" ]]; then
    UNSCAPED=$DUPLICATI__LOCALPATH
    escape_tag_str
    TAGS="${TAGS},localPath=${ESCAPED}"
fi

FIELDS="message=\"${MESSAGE_FIELD_VALUE}\""
#echo $TAGS

curl --request POST \
"$INFLUXDB_SERVER/write?db=$INFLUXDB_BUCKET&ORG=$INFLUXDB_ORG" \
  --header "Authorization: Token $INFLUXDB_TOKEN" \
  --header "Content-Type: text/plain; charset=utf-8" \
  --header "Accept: application/json" \
  --data-raw "duplicati${TAGS} ${FIELDS}" > /dev/null 2>&1

exit 0
