mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
3ed0f1665f
The export.fish script exits with an exit code of 4. Thus, any shell checks that make sure the source command exits successfully always failed. This was due to the last line trying to erase the __main function. In fish, you can't erase a function using the `set` command, you can only erase variables. By removing that line the script now exits with an exit code of 0 instead of 4. Erase __main function at the end of export.fish Closes https://github.com/espressif/esp-idf/pull/10828
78 lines
2.4 KiB
Fish
78 lines
2.4 KiB
Fish
# This script should be sourced, not executed.
|
|
|
|
function __main
|
|
if not set -q IDF_PATH
|
|
echo "IDF_PATH must be set before sourcing this script"
|
|
return 1
|
|
end
|
|
|
|
set oldpath = $PATH
|
|
|
|
echo "Detecting the Python interpreter"
|
|
source "$IDF_PATH"/tools/detect_python.fish
|
|
|
|
echo "Adding ESP-IDF tools to PATH..."
|
|
# Call idf_tools.py to export tool paths
|
|
set -x IDF_TOOLS_EXPORT_CMD "$IDF_PATH"/export.fish
|
|
set -x IDF_TOOLS_INSTALL_CMD "$IDF_PATH"/install.fish
|
|
set idf_exports ("$ESP_PYTHON" "$IDF_PATH"/tools/idf_tools.py export) || return 1
|
|
eval "$idf_exports"
|
|
|
|
echo "Checking if Python packages are up to date..."
|
|
python "$IDF_PATH"/tools/check_python_dependencies.py || return 1
|
|
|
|
# Allow calling some IDF python tools without specifying the full path
|
|
# "$IDF_PATH"/tools is already added by 'idf_tools.py export'
|
|
set IDF_ADD_PATHS_EXTRAS "$IDF_PATH"/components/esptool_py/esptool
|
|
set IDF_ADD_PATHS_EXTRAS "$IDF_ADD_PATHS_EXTRAS":"$IDF_PATH"/components/espcoredump
|
|
set IDF_ADD_PATHS_EXTRAS "$IDF_ADD_PATHS_EXTRAS":"$IDF_PATH"/components/partition_table
|
|
set IDF_ADD_PATHS_EXTRAS "$IDF_ADD_PATHS_EXTRAS":"$IDF_PATH"/components/app_update
|
|
set -x PATH "$IDF_ADD_PATHS_EXTRAS":"$PATH"
|
|
|
|
set added_path_variables
|
|
for entry in $PATH;
|
|
if not contains $entry $oldpath
|
|
set -a added_path_variables $entry
|
|
end
|
|
end
|
|
if set -q added_path_variables[1]
|
|
echo "Added the following directories to PATH:"
|
|
for entry in $added_path_variables;
|
|
echo $entry
|
|
end
|
|
else
|
|
echo "All paths are already set."
|
|
end
|
|
|
|
# Clean up
|
|
set -e added_path_variables
|
|
set -e cmd
|
|
set -e old_path
|
|
set -e paths
|
|
set -e path_prefix
|
|
set -e path_entry
|
|
set -e IDF_ADD_PATHS_EXTRAS
|
|
set -e idf_exports
|
|
set -e ESP_PYTHON
|
|
|
|
# Not unsetting IDF_PYTHON_ENV_PATH, it can be used by IDF build system
|
|
# to check whether we are using a private Python environment
|
|
|
|
echo "Done! You can now compile ESP-IDF projects."
|
|
echo "Go to the project directory and run:"
|
|
echo ""
|
|
echo " idf.py build"
|
|
echo ""
|
|
end
|
|
|
|
__main
|
|
|
|
set click_version (python -c 'import click; print(click.__version__.split(".")[0])')
|
|
if test $click_version -lt 8
|
|
eval (env _IDF.PY_COMPLETE=source_fish idf.py)
|
|
else
|
|
eval (env _IDF.PY_COMPLETE=fish_source idf.py)
|
|
end
|
|
|
|
functions -e __main
|