#!/bin/sh

#
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (C) 2025 Advanced Micro Devices, Inc. All rights reserved.
#

# -- Detect a Windows environment and automatically switch to the .bat file
if [ "$(uname | grep -E '^(windows32|CYGWIN)')" ]; then
    trap "" INT
    "$0.bat" "$@"
    exit $?
fi

# Working variables
XRT_PROG=xrt-smi

# -- Examine the options
XRTWARP_PROG_ARGS_size=0
while [ $# -gt 0 ]; do
    case "$1" in
    # Copy the options the remaining options
    *)
        eval "XRTWRAP_PROG_ARG_$XRTWARP_PROG_ARGS_size=\"\$1\""
        XRTWARP_PROG_ARGS_size=$((XRTWARP_PROG_ARGS_size + 1))
        shift
        ;;
    esac
done

# -- Find loader directory
XRT_LOADER_DIR="$(dirname "$0")"

# For edge platforms loader is not required as tools are in standard location(/usr).
# So calling unwrapped tool from this script itself.
case "$XRT_LOADER_DIR" in
    /usr*|/bin*)
        # Build arguments dynamically
        i=0
        while [ $i -lt $XRTWARP_PROG_ARGS_size ]; do
            eval "arg=\$XRTWRAP_PROG_ARG_$i"
            set -- "$@" "$arg"
            i=$((i + 1))
        done
        "${XRT_LOADER_DIR}/unwrapped/${XRT_PROG}" "$@"
        exit 0
        ;;
esac

# Call loader for dc platforms
XRT_LOADER="${XRT_LOADER_DIR}/unwrapped/loader"
if [ ! -f "$XRT_LOADER" ]; then
    echo "ERROR: Could not find 64-bit loader executable."
    echo "ERROR: ${XRT_LOADER} does not exist."
    exit 1
fi

# Build arguments dynamically for final call
i=0
while [ $i -lt $XRTWARP_PROG_ARGS_size ]; do
    eval "arg=\$XRTWRAP_PROG_ARG_$i"
    set -- "$@" "$arg"
    i=$((i + 1))
done

"${XRT_LOADER}" -exec ${XRT_PROG} "$@"
