esp-idf/export.fish
Max Larsson 3ed0f1665f Make export.fish exit with SUCCESS exit code
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
2023-03-17 18:08:41 +01:00

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