#!/bin/sh
#
# Copyright (c) 2016,  Intel Corporation.
# All Rights Reserved
#
# This program is free software;  you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY;  without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
# the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program;  if not, see <http://www.gnu.org/licenses/>
#

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

if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
    echo "Usage: $0 <native tool> [parameters]"
    exit 1
fi

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

OLDPATH=$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
tool=`/usr/bin/which $1 2>/dev/null`

if [ -n "$tool" ] ; then
    # add old path to allow usage of host tools
    PATH=$PATH:$OLD_PATH $@
else
    echo "Error: Unable to find '$1' in native sysroot"
    exit 1
fi
