From e6447d2a08f5ca585816d093e79a01dad3781f98 Mon Sep 17 00:00:00 2001 From: Rebecca Cran Date: Mon, 24 Apr 2023 14:59:14 -0600 Subject: Remove bashisms from edksetup.sh and BaseTools/BuildEnv Remove bashisms from edksetup.sh and BaseTools/BuildEnv. This allows any POSIX shell to use those scripts, removing the dependency on bash. Signed-off-by: Rebecca Cran Reviewed-by: Liming Gao --- BaseTools/BuildEnv | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'BaseTools') diff --git a/BaseTools/BuildEnv b/BaseTools/BuildEnv index 275f4c5901..bd6235d74f 100755 --- a/BaseTools/BuildEnv +++ b/BaseTools/BuildEnv @@ -20,7 +20,8 @@ SetWorkspace() { # # Set $WORKSPACE # - export WORKSPACE=`pwd` + WORKSPACE=$(pwd) + export WORKSPACE return 0 @@ -35,8 +36,7 @@ RestorePreviousConfiguration() { export CONF_PATH=$WORKSPACE/Conf if [ ! -d $WORKSPACE/Conf ] && [ -n "$PACKAGES_PATH" ] then - PATH_LIST=${PACKAGES_PATH//:/ } - for DIR in $PATH_LIST + for DIR in $(echo $PACKAGES_PATH | tr ':' ' ') do if [ -d $DIR/Conf ] then @@ -70,7 +70,13 @@ GenerateShellCodeToUpdatePath() { OUTPUT_FILE=$1 echo "if [ -e $EDK_TOOLS_PATH_BIN ]" >> $OUTPUT_FILE echo "then" >> $OUTPUT_FILE - echo " if [ "\${PATH/$EDK_TOOLS_PATH_BIN/}" == "\$PATH" ]" >> $OUTPUT_FILE + echo " FOUND_TOOLS_PATH_BIN=0" >> $OUTPUT_FILE + echo " for DIR in \$(echo \$PATH | tr ':' ' '); do" >> $OUTPUT_FILE + echo " if [ \"\$DIR\" = \"$EDK_TOOLS_PATH_BIN\" ]; then" >> $OUTPUT_FILE + echo " FOUND_TOOLS_PATH_BIN=1" >> $OUTPUT_FILE + echo " fi" >> $OUTPUT_FILE + echo " done" >> $OUTPUT_FILE + echo " if [ \$FOUND_TOOLS_PATH_BIN = 0 ]" >> $OUTPUT_FILE echo " then" >> $OUTPUT_FILE echo " export PATH=$EDK_TOOLS_PATH_BIN:\$PATH" >> $OUTPUT_FILE echo " fi" >> $OUTPUT_FILE @@ -84,7 +90,7 @@ StoreCurrentConfiguration() { # OUTPUT_FILE=$CONF_PATH/BuildEnv.sh #echo Storing current configuration into $OUTPUT_FILE - echo "# Auto-generated by ${BASH_SOURCE[0]}" >| $OUTPUT_FILE + echo "# Auto-generated by BaseTools/BuildEnv" >| $OUTPUT_FILE GenerateShellCodeToSetVariable WORKSPACE $OUTPUT_FILE GenerateShellCodeToSetVariable EDK_TOOLS_PATH $OUTPUT_FILE GenerateShellCodeToUpdatePath $OUTPUT_FILE @@ -130,10 +136,9 @@ SetEdkToolsPath() { # # Try $PACKAGES_PATH # - if [ -n "$PACKAGES_PATH"] + if [ -n "$PACKAGES_PATH" ] then - PATH_LIST=${PACKAGES_PATH//:/ } - for DIR in $PATH_LIST + for DIR in $(echo $PACKAGES_PATH | tr ':' ' ') do if [ -d $DIR/BaseTools ] then @@ -156,10 +161,7 @@ GetBaseToolsBinSubDir() { # # Figure out a uniq directory name from the uname command # - UNAME_DIRNAME=`uname -sm` - UNAME_DIRNAME=${UNAME_DIRNAME// /-} - UNAME_DIRNAME=${UNAME_DIRNAME//\//-} - echo $UNAME_DIRNAME + echo $(uname -sm | tr ' ' '-') } GetEdkToolsPathBinDirectory() { @@ -180,8 +182,6 @@ GetEdkToolsPathBinDirectory() { AddDirToStartOfPath() { DIRNAME=$1 - PATH=$DIRNAME:$DIRNAME:$DIRNAME:$PATH - PATH=${PATH//$DIRNAME:/} PATH=$DIRNAME:$PATH export PATH } @@ -199,7 +199,7 @@ AddEdkToolsToPath() { EDK_TOOLS_PATH_BIN=`GetEdkToolsPathBinDirectory` # check if the edk2basetools pip package is available - if $PYTHON_COMMAND -c "import edk2basetools" &> /dev/null; then + if $PYTHON_COMMAND -c "import edk2basetools" > /dev/null 2>&1; then # if it is, use the pip version of the wrappers echo "Using Pip Basetools" AddDirToStartOfPath $EDK_TOOLS_PATH/BinPipWrappers/PosixLike -- cgit v1.2.3