1#!/bin/bash 2 3source=$1 4init=$2 5power_state=$3 6 7get_leakport() { 8 if [[ $1 =~ ^PWRGD_TRAY_LEAK_PORT([0-9]+)_N$ ]]; then 9 echo "leakport${BASH_REMATCH[1]}" 10 fi 11} 12 13leakport=$(get_leakport "$source") 14portnum=${leakport#leakport} 15 16leak_state=$(busctl get-property xyz.openbmc_project.leakdetector "/xyz/openbmc_project/state/leak/detector/LeakPort${portnum}_Big" xyz.openbmc_project.State.Leak.Detector State | awk -F'.' '{print $NF}' | tr -d '"') 17 18if [ "$power_state" == "assert" ]; then 19 # If power is asserted and leak state is Normal, turn on blue LED and turn off amber LED 20 # Else do nothing control by the leak detector leakage service 21 if [ "$leak_state" == "Normal" ] || [ "$init" == "true" ]; then 22 busctl set-property "xyz.openbmc_project.LED.GroupManager" "/xyz/openbmc_project/led/groups/${leakport}_amber" "xyz.openbmc_project.Led.Group" "Asserted" "b" "false" 23 busctl set-property "xyz.openbmc_project.LED.GroupManager" "/xyz/openbmc_project/led/groups/${leakport}_blue" "xyz.openbmc_project.Led.Group" "Asserted" "b" "true" 24 fi 25elif [ "$power_state" == "deassert" ]; then 26 busctl set-property "xyz.openbmc_project.LED.GroupManager" "/xyz/openbmc_project/led/groups/${leakport}_blue" "xyz.openbmc_project.Led.Group" "Asserted" "b" "false" 27fi 28 29exit 0 30