Skip to content

Commit

Permalink
Update detect_python SH
Browse files Browse the repository at this point in the history
  • Loading branch information
tomassebestik committed Mar 4, 2022
1 parent 171b4ec commit addd647
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 27 deletions.
28 changes: 13 additions & 15 deletions tools/detect_python.fish
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,22 @@
#
# This is a port of detect_python.sh. More information are provided there.

set -x ESP_PYTHON python
set OLDEST_PYTHON_SUPPORTED_MAJOR 3
set OLDEST_PYTHON_SUPPORTED_MINOR 7

for p_cmd in python python3;
for p_cmd in python3 python python3.7 python3.8 python3.9 python3.10 python3.11 python3.12;
$p_cmd --version >/dev/null 2>&1; or continue
echo "Checking \"$p_cmd\" ..."

set res ($p_cmd -c "import sys; print(sys.version_info.major)")
if [ "$res" = "3" ]
set -x ESP_PYTHON $p_cmd
break
end
end
$p_cmd -c "import sys; exit(1) if sys.version_info.major < int(\"$OLDEST_PYTHON_SUPPORTED_MAJOR\") else exit(0);"; or continue
$p_cmd -c "import sys; exit(1) if sys.version_info.minor < int(\"$OLDEST_PYTHON_SUPPORTED_MINOR\") else exit(0);"; or continue

$ESP_PYTHON --version
if [ $status -ne 0 ]
echo "\"$ESP_PYTHON\" is not installed! Please see the documentation for how to install it."
# The following exit skips the rest of this file but won't exit fish where the script was sourced. This is not a
# fatal issue.
exit 1
set ESP_PYTHON $p_cmd
break
end

echo "\"$ESP_PYTHON\" has been detected"
test -n "$ESP_PYTHON"; or echo "Python $OLDEST_PYTHON_SUPPORTED_MAJOR.$OLDEST_PYTHON_SUPPORTED_MINOR+ is not installed! Please see the documentation for how to install it."
test -n "$ESP_PYTHON"; or exit 1

$ESP_PYTHON --version
echo "$ESP_PYTHON has been detected"
28 changes: 16 additions & 12 deletions tools/detect_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,26 @@
# This is a helper script for detecting Python executables in the PATH. It is intended to be used for determining
# which Python should be used with idf_tools.py for installing tools and exporting environment variables.
#
# 1. The script will set variable ESP_PYTHON to "python" if it is of version 3.
# 2. Otherwise, "python3" will be exported if it exists.
# 3. The script will fall-back to "python" as the last resort and fail if it doesn't exist.
# 1. The script is looking for python version same or greater than minimal required version on path
# 2. If required version of python is found it is assigned to environmental variable `ESP_PYTHON`
# 3. If required version of python is not found, script will fail

ESP_PYTHON=python
OLDEST_PYTHON_SUPPORTED_MAJOR=3
OLDEST_PYTHON_SUPPORTED_MINOR=7

for p_cmd in python python3
do
for p_cmd in python3 python python3.7 python3.8 python3.9 python3.10 python3.11 python3.12; do
$p_cmd --version >/dev/null 2>&1 || continue
echo "Checking \"$p_cmd\" ..."

if [ "$($p_cmd -c "import sys; print(sys.version_info.major)")" = 3 ]; then
ESP_PYTHON=$p_cmd
break
fi
done
$p_cmd -c "import sys; exit(1) if sys.version_info.major < int(\"$OLDEST_PYTHON_SUPPORTED_MAJOR\") else exit(0);" || continue
$p_cmd -c "import sys; exit(1) if sys.version_info.minor < int(\"$OLDEST_PYTHON_SUPPORTED_MINOR\") else exit(0);" || continue

$ESP_PYTHON --version || { echo "\"$ESP_PYTHON\" is not installed! Please see the documentation for how to install it."; exit 1; }
ESP_PYTHON=$p_cmd
break
done

$ESP_PYTHON --version 2>/dev/null || {
echo "Python ${OLDEST_PYTHON_SUPPORTED_MAJOR}.${OLDEST_PYTHON_SUPPORTED_MINOR}+ is not installed! Please see the documentation for how to install it."
exit 1
}
echo "\"$ESP_PYTHON\" has been detected"

0 comments on commit addd647

Please sign in to comment.