#!/bin/bash

action=$1
devpath=$2
of_fullname=$3

#Use of_fullname if it's there, otherwise use devpath.
function use_devpath(){
    path=$devpath

    if [[ "$path" =~ (.*)/hwmon/hwmon[0-9]+$ ]];
    then
        path=${BASH_REMATCH[1]}
    fi
    echo "${path}"
}

path=$of_fullname
if [ -z "${path}" ]@FORCE_DEVPATH@
then
    path="$(use_devpath)"
else
    override_with_devpath=(@OVERRIDE_WITH_DEVPATH@)
    if [[ "$path" =~ .*/(.*)$ ]];
    then
        of_name="${BASH_REMATCH[1]}"
        for i in ${!override_with_devpath[@]}; do
            if [[ "${override_with_devpath[$i]}" == "${of_name}" ]];
            then
                path="$(use_devpath)"
                break
            fi
        done
    fi
fi

# Needed to re-do escaping used to avoid bitbake separator conflicts
path="${path//:/--}"
# Needed to escape prior to being used as a unit argument
path="$(systemd-escape "$path")"
systemctl --no-block "$action" "xyz.openbmc_project.Hwmon@$path.service"
