blob: 9f1394103e84574a09252d67891bf597de77d60c [file] [log] [blame]
#!/bin/bash
declare -A HOTH_USB_NAMES=()
declare -A HOTH_ADDRESS_MODE=()
declare -A TARGET_RESET=()
declare -A IGNORE_ADDRESS_MODE=()
declare -A UART_CHANNEL_ID=()
shopt -s nullglob
for cfg in '@datadir@'/hothd/usb-config/*.sh; do
# Followed https://www.shellcheck.net/wiki/SC1090 for dynamic source target
# shellcheck source=/dev/null
source "$cfg" || exit
done
usb="$(basename "$1")"
name="${HOTH_USB_NAMES["$usb"]}"
if [ -z "$name" ]; then
echo "Missing mapping for $usb" >&2
exit 10
fi
address_mode="${HOTH_ADDRESS_MODE["$usb"]}"
if [ -z "$address_mode" ]; then
address_mode="4"
fi
args=()
case "_${TARGET_RESET["$usb"]}" in
'_ignore_fail')
args+=(-rignore_fail)
;;
'_disable_passthrough')
args+=(-rneeded_active)
;;
'_')
;;
*)
args+=(-r)
;;
esac
if [ -n "${IGNORE_ADDRESS_MODE["$usb"]}" ]; then
args+=(-i)
fi
if [ -n "${UART_CHANNEL_ID["$usb"]}" ]; then
args+=(-u "${UART_CHANNEL_ID["$usb"]}")
fi
exec '@libexecdir@'/hothd -n "$name" -m usb:"$usb" -a "$address_mode" "${args[@]}"