summaryrefslogtreecommitdiffstats
path: root/BaseTools
diff options
context:
space:
mode:
authorRebecca Cran <rebecca@bsdio.com>2023-04-24 14:59:14 -0600
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-05-10 12:02:34 +0000
commite6447d2a08f5ca585816d093e79a01dad3781f98 (patch)
tree76e15689e427477950f9fa3e88d443df6749bd00 /BaseTools
parent373a95532a785108f625877d993451d4a6d36713 (diff)
downloadedk2-e6447d2a08f5ca585816d093e79a01dad3781f98.tar.gz
edk2-e6447d2a08f5ca585816d093e79a01dad3781f98.tar.bz2
edk2-e6447d2a08f5ca585816d093e79a01dad3781f98.zip
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 <rebecca@bsdio.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Diffstat (limited to 'BaseTools')
-rwxr-xr-xBaseTools/BuildEnv30
1 files changed, 15 insertions, 15 deletions
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