#!/bin/bash

# Provide source directive to shellcheck.
# shellcheck source=meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/power-cmd
source /usr/libexec/power-cmd

SLOT_ID=$(( $1-1  << 2 ))

# Host Reboot
host-reboot()
{
    for reset_cmd in "${reset_seq[@]}"
    do
        result="$(busctl call $SERVICE $OBJECT_PATH $INTERFACE sendRequest yyyyay $SLOT_ID $NETFN $LUN $CMD $DATA_LEN 0x01 0x42 0x01 0 "$reset_cmd")"
        echo "$result"
        if [ "$reset_cmd" == $POWER_BTN_LOW ]
        then
            sleep "$1"
        fi
    done
    echo "Host Power Reset"
    exit 0
}

# Check Host Response and Status
check-response()
{
    response="$(busctl call $SERVICE $OBJECT_PATH $INTERFACE sendRequest yyyyay $SLOT_ID 0x38 $LUN 0x3 0x03 0x15 0xa0 0x00)"

    result=$(echo "$response" | cut -d" " -f $PWRGD_SYS_PWROK_INDEX)
    res="$(( "$result" & 0x80  ))"
    pgood="$(( "$res" >> 7 ))"
    if [ "$pgood" == $STATE_ON ]
    then
        host-reboot 1
        exit 0;
    else
        echo "Host is Off"
        exit 1;
    fi
}

check-response
