# !kmk_ash
# $Id: RemoveDirFromPath.sh 95375 2022-06-26 20:29:21Z vboxsync $
## @file
# Bash function for removing a directory from the PATH.
#
# This is used by tools/env.sh but cannot be a part of it because kmk_ash
# freaks out when it sees the bash-specific substitutions.
#
# Assumes KBUILD_HOST is set.
#

#
# Copyright (C) 2020-2022 Oracle Corporation
#
# This file is part of VirtualBox Open Source Edition (OSE), as
# available from http://www.virtualbox.org. This file is free software;
# you can redistribute it and/or modify it under the terms of the GNU
# General Public License (GPL) as published by the Free Software
# Foundation, in version 2 as it comes in the "COPYING" file of the
# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
#

##
# Modifies the PATH variable by removing $1.
#
# @param 1     The PATH separator (":" or ";").
# @param 2     The directory to remove from the path.
RemoveDirFromPath()
{
    MY_SEP=$1
    MY_DIR=$2
    if test "${KBUILD_HOST}" = "win"; then
        MY_DIR="$(cygpath -u "${MY_DIR}")"
    fi

    # This should work at least back to bash 2.0 if the info page is anything to go by.
    PATH="${MY_SEP}${PATH}${MY_SEP}"                        # Make sure there are separators at both ends.
    PATH="${PATH//${MY_SEP}${MY_DIR}${MY_SEP}/${MY_SEP}}"   # Remove all (=first '/') ${MY_DIR} instance.
    PATH="${PATH#${MY_SEP}}"                                # Remove the leading separator we added above.
    PATH="${PATH%${MY_SEP}}"                                # Remove the trailing separator we added above.
}

