From: Rebecca Cran <rebecca@bsdio.com>
To: devel@edk2.groups.io, Bob Feng <bob.c.feng@intel.com>,
Liming Gao <liming.gao@intel.com>
Cc: Rebecca Cran <rebecca@bsdio.com>
Subject: [PATCH] Simplify edksetup.sh
Date: Wed, 10 Jul 2019 15:17:26 -0600 [thread overview]
Message-ID: <20190710211726.10100-1-rebecca@bsdio.com> (raw)
o Use '$SCRIPTNAME' consistently instead of 'edksetup.sh'
o Use the bash environment variable $PWD instead of executing the pwd
command.
o Add quotes around variables to ensure they're evaluated correctly.
o Simplify SetupPython3() and SetupPython() functions. On Linux,
"whereis" matches python3, python3.7, as well as man pages, libs etc.
While on macOS it only matches the specified name, and so misses
python3.7. Improve this by looping over potential version numbers and
seeing if such a binary exists and can be executed.
o Since when parsing options '*' matches anything not already matched,
remove -?, -h and --help since they're redundant.
o When executing arithmetic commands, $ isn't needed before variables.
Signed-off-by: Rebecca Cran <rebecca@bsdio.com>
---
edksetup.sh | 67 ++++++++++++++---------------------------------------
1 file changed, 18 insertions(+), 49 deletions(-)
diff --git a/edksetup.sh b/edksetup.sh
index 12a3e26a67..a797ff03d2 100755
--- a/edksetup.sh
+++ b/edksetup.sh
@@ -49,11 +49,11 @@ function SetWorkspace()
return 0
fi
- if [ ! ${BASH_SOURCE[0]} -ef ./edksetup.sh ] && [ -z "$PACKAGES_PATH" ]
+ if [ ! ${BASH_SOURCE[0]} -ef ./$SCRIPTNAME ] && [ -z "$PACKAGES_PATH" ]
then
echo Run this script from the base of your tree. For example:
- echo " cd /Path/To/Edk/Root"
- echo " . edksetup.sh"
+ echo " cd /path/to/edk2/root"
+ echo " . $SCRIPTNAME"
return 1
fi
@@ -71,7 +71,7 @@ function SetWorkspace()
#
# Set $WORKSPACE
#
- export WORKSPACE=`pwd`
+ export WORKSPACE=$PWD
return 0
}
@@ -107,24 +107,10 @@ function SetupEnv()
function SetupPython3()
{
- if [ $origin_version ];then
- origin_version=
- fi
- for python in $(whereis python3)
- do
- python=$(echo $python | grep "[[:digit:]]$" || true)
- python_version=${python##*python}
- if [ -z "${python_version}" ] || (! command -v $python >/dev/null 2>&1);then
- continue
- fi
- if [ -z $origin_version ];then
- origin_version=$python_version
- export PYTHON_COMMAND=$python
- continue
- fi
- if [[ "$origin_version" < "$python_version" ]]; then
- origin_version=$python_version
- export PYTHON_COMMAND=$python
+ for python in $(seq -f "python3.%g" 15 -1 1) python3; do
+ if command -v $python >/dev/null 2>&1; then
+ export PYTHON_COMMAND=$(which $python)
+ break
fi
done
return 0
@@ -132,8 +118,8 @@ function SetupPython3()
function SetupPython()
{
- if [ $PYTHON_COMMAND ] && [ -z $PYTHON3_ENABLE ];then
- if ( command -v $PYTHON_COMMAND >/dev/null 2>&1 );then
+ if [ -n "$PYTHON_COMMAND" ] && [ -z "$PYTHON3_ENABLE" ]; then
+ if command -v $PYTHON_COMMAND >/dev/null 2>&1; then
return 0
else
echo $PYTHON_COMMAND Cannot be used to build or execute the python tools.
@@ -141,32 +127,15 @@ function SetupPython()
fi
fi
- if [ $PYTHON3_ENABLE ] && [ $PYTHON3_ENABLE == TRUE ]
- then
+ if [ "$PYTHON3_ENABLE" == "TRUE" ]; then
SetupPython3
fi
- if [ $PYTHON3_ENABLE ] && [ $PYTHON3_ENABLE != TRUE ]
- then
- if [ $origin_version ];then
- origin_version=
- fi
- for python in $(whereis python2)
- do
- python=$(echo $python | grep "[[:digit:]]$" || true)
- python_version=${python##*python}
- if [ -z "${python_version}" ] || (! command -v $python >/dev/null 2>&1);then
- continue
- fi
- if [ -z $origin_version ]
- then
- origin_version=$python_version
- export PYTHON_COMMAND=$python
- continue
- fi
- if [[ "$origin_version" < "$python_version" ]]; then
- origin_version=$python_version
- export PYTHON_COMMAND=$python
+ if [ -n "$PYTHON3_ENABLE" ] && [ "$PYTHON3_ENABLE" != "TRUE" ]; then
+ for python in $(seq -f "python2.%g" 10 -1 1) python2; do
+ if command -v $python >/dev/null 2>&1; then
+ export PYTHON_COMMAND=$(which $python)
+ break
fi
done
return 0
@@ -194,12 +163,12 @@ do
RECONFIG=TRUE
shift
;;
- -?|-h|--help|*)
+ *)
HelpMsg
break
;;
esac
- I=$(($I - 1))
+ I=$((I - 1))
done
if [ $I -gt 0 ]
--
2.22.0
next reply other threads:[~2019-07-10 21:17 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-10 21:17 Rebecca Cran [this message]
2019-07-12 16:05 ` [edk2-devel] [PATCH] Simplify edksetup.sh rebecca
2019-07-12 22:21 ` Laszlo Ersek
2019-07-15 14:40 ` rebecca
2019-07-15 14:55 ` Leif Lindholm
2019-07-15 15:01 ` rebecca
2019-07-15 17:48 ` Laszlo Ersek
2019-07-15 17:45 ` Laszlo Ersek
2019-07-15 22:37 ` rebecca
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190710211726.10100-1-rebecca@bsdio.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox