#! /bin/bash
#! /bin/bash
MYNAME=$(basename "$0")
MYDIR=$(dirname "$0")
MYDIR=$(readlink -m "$MYDIR")
VERSION="0.0.1"
VERBOSE="true"
LOGDIR="$HOME/"
LOGFILE="$LOGDIR/${MYNAME}.log"

source $MYDIR/utilityfunctions.sh

MQTT_CONFIG_FILE="$HOME/.pip/mqtt.conf"

function get_load()
{
    cat /proc/loadavg | awk '{print $1}'
}

function get_memory_measurements()
{
    local line=$(free | grep -i '^Mem:')
    local total=$(echo "$line" | awk '{print $2}')
    local available=$(echo "$line" | awk '{print $7}')

    echo "{ \"Total\": $total, \"Available\": $available }"
}

MQTT_SERVER="192.168.0.5"
MQTT_SERVER="mqtt"
MQTT_PORT=1883
MQTT_USER=pipas
MQTT_PASSWORD=p

if [ -f "$MQTT_CONFIG_FILE" ]; then
    printVerbose "Loading '$MQTT_CONFIG_FILE'..."
    source "$MQTT_CONFIG_FILE"
else
    printVerbose "Creating '$MQTT_CONFIG_FILE'..."
    cat >"$MQTT_CONFIG_FILE" <<EOF
#
# Config file autogenerated by $MYNAME $VERSION.
# Change this file to represent the settings, it will not beoverwritten.
#
MQTT_SERVER="$MQTT_SERVER"
MQTT_PORT=$MQTT_PORT
MQTT_USER=$MQTT_USER
MQTT_PASSWORD=$MQTT_PASSWORD

EOF
fi 

while true; do
    hostname=$(hostname)
    topic="stat/${hostname}/resources"
    load=$(get_load)
    memory=$(get_memory_measurements)

    message="{\"Load\":$load, \"Memory\": $memory, \"hostname\":\"$hostname\"}"

    echo "    topic: $topic"
    echo "  message: $message"
    mosquitto_pub \
        -u "$MQTT_USER" \
        -P "$MQTT_PASSWORD" \
        -h "$MQTT_SERVER" \
        -t "$topic" \
        -m "$message"

    sleep 5
done
