#!/bin/bash
set -e

HASSIO_API="http://172.17.0.2"

# helppage
if [ "$1" == "help" ] || [ "$#" -lt 2 ]; then
    cat << EOF
---- Hass.IO Cli ----

HomeAssistant:
  $ hassio homeassistant logs
  $ hassio homeassistant restart
  $ hassio homeassistant update

Host:
  $ hassio host restart
  $ hassio host shutdown
  $ hassio host update
EOF
fi

function call_api() {
    if ! api_ret="$(curl -s -X $1 "$HASSIO_API/$2/$3")"; then
        echo "API error: $api_ret"
        exit 1
    fi
    echo "$api_ret"
}

######
# homeassistant functions
if [ "$1" == "homeassistant" ]; then
    hass_cmd=('logs' 'restart' 'update')
    if [[ ! ${hass_cmd[*]} =~ $2 ]]; then
        echo "No homeassistant command '$2' found!"
        exit 1
    fi

    # logs
    if [ "$2" == "logs" ]; then
        call_api GET "$1" "$2"
    else
        call_api POST "$1" "$2"
    fi
fi

######
# host functions
if [ "$1" == "host" ]; then
    hass_cmd=('restart' 'shutdown' 'update')
    if [[ ! ${hass_cmd[*]} =~ $2 ]]; then
        echo "No host command '$2' found!"
        exit 1
    fi

    call_api POST "$1" "$2"
fi
