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.
Signed-off-by: Rebecca Cran <rebe...@bsdio.com> --- edksetup.sh | 48 +++++++++--------------------------------------- 1 file changed, 9 insertions(+), 39 deletions(-) diff --git a/edksetup.sh b/edksetup.sh index 06d2f041e6..e2f116f8bc 100755 --- a/edksetup.sh +++ b/edksetup.sh @@ -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 @@ -146,27 +132,11 @@ function SetupPython() 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 -- 2.22.0 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#43747): https://edk2.groups.io/g/devel/message/43747 Mute This Topic: https://groups.io/mt/32483827/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-