#!/bin/bash
#
# Copyright (c) 2016,  Intel Corporation.
#
# SPDX-License-Identifier: GPL-2.0-or-later
#

#
# This script is for running tools from native oe sysroot
#

if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
    echo 'oe-run-native: the following arguments are required: <native recipe> <native tool>'
    echo 'Usage: oe-run-native native-recipe tool [parameters]'
    echo ''
    echo 'OpenEmbedded run-native - runs native tools'
    echo ''
    echo 'arguments:'
    echo '  native-recipe       The recipe which provides tool'
    echo '  tool                Native tool to run'
    echo ''
    exit 2
fi

native_recipe="$1"
tool="$2"

if [ "${native_recipe%-native}" = "$native_recipe" ]; then
    echo Error: $native_recipe is not a native recipe
    echo Error: Use \"oe-run-native -h\" for help
    exit 1
fi

shift

SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null`
if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
        echo "Error: Unable to find oe-find-native-sysroot script"
        exit 1
fi
. $SYSROOT_SETUP_SCRIPT $native_recipe

OLD_PATH=$PATH

# look for a tool only in native sysroot
PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin$(find $OECORE_NATIVE_SYSROOT/usr/bin/*-native -maxdepth 1 -type d -printf ":%p")
tool_find=`/usr/bin/which $tool 2>/dev/null`

if [ -n "$tool_find" ] ; then
    # add old path to allow usage of host tools
    PATH=$PATH:$OLD_PATH "$@"
else
    echo "Error: Unable to find '$tool' in $PATH"
    echo "Error: Have you run 'bitbake $native_recipe -caddto_recipe_sysroot'?"
    exit 1
fi
