public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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


             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