diff --git a/Packaging/Files/otbenv.bash b/Packaging/Files/otbenv.bash index 4102c5b50d73bc7cbfeae495d91f291320224226..f2f56b4822de33759300d8b4c0d5cde1af869d9a 100644 --- a/Packaging/Files/otbenv.bash +++ b/Packaging/Files/otbenv.bash @@ -18,6 +18,22 @@ # limitations under the License. # +cat_path() +{ + if [ $# -eq 0 ]; then exit 0; fi + if [ $# -eq 1 ]; then echo "$1"; exit 0; fi + cur="$1" + shift 1 + next="$(cat_path $@)" + if [ -z "$cur" ]; then + echo "$next" + elif [ -z "$next" ]; then + echo "$cur" + else + echo "$cur:$next" + fi +} + # The below environment variables only affect current shell # So if you run again from a terminal. you need to run the script again # see how this is sourced in monteverdi.sh and mapla.sh @@ -26,11 +42,11 @@ CURRENT_DIR=$(cd -P -- "$(dirname -- "$BASH_SOURCE")" && printf '%s\n' "$(pwd -P unset LD_LIBRARY_PATH -PATH=$CURRENT_DIR/bin:$PATH +PATH=$(cat_path "$CURRENT_DIR/bin" "$PATH") GDAL_DATA=$CURRENT_DIR/share/data GEOTIFF_CSV=$CURRENT_DIR/share/epsg_csv -PYTHONPATH=$CURRENT_DIR/lib/python:$PYTHONPATH -OTB_APPLICATION_PATH=$CURRENT_DIR/lib/otb/applications +PYTHONPATH=$(cat_path "$CURRENT_DIR/lib/python" "$PYTHONPATH") +OTB_APPLICATION_PATH=$(cat_path "$CURRENT_DIR/lib/otb/applications" "$OTB_APPLICATION_PATH") GDAL_DRIVER_PATH="disable" LC_NUMERIC=C diff --git a/Packaging/Files/otbenv.bat b/Packaging/Files/otbenv.bat index 615271ecd6104cf6e4bc70651ce2bd0aaeada606..d5aac56d309a5d460e93515a797272171b51d5cc 100644 --- a/Packaging/Files/otbenv.bat +++ b/Packaging/Files/otbenv.bat @@ -20,11 +20,23 @@ :: Setup environment for OTB package set CURRENT_SCRIPT_DIR=%~dp0 -set PATH=%CURRENT_SCRIPT_DIR%bin;%PATH% +call :prefix_path PATH "%CURRENT_SCRIPT_DIR%bin" +call :prefix_path PYTHONPATH "%CURRENT_SCRIPT_DIR%lib\python" +call :prefix_path OTB_APPLICATION_PATH "%CURRENT_SCRIPT_DIR%lib\otb\applications" + set GDAL_DATA=%CURRENT_SCRIPT_DIR%share\data set GEOTIFF_CSV=%CURRENT_SCRIPT_DIR%share\epsg_csv -set PYTHONPATH=%CURRENT_SCRIPT_DIR%lib\python;%PYTHONPATH% -set OTB_APPLICATION_PATH=%CURRENT_SCRIPT_DIR%lib\otb\applications set GDAL_DRIVER_PATH=disable :: Set numeric locale to C set LC_NUMERIC=C +goto :eof + +:prefix_path +setlocal enabledelayedexpansion +set output=%~2 +set var=%1 +set content= +if defined %var% ( set content=!%var%! ) +if not "%content%" == "" ( set output=%output%;%content% ) +endlocal & set %1=%output% +goto :eof diff --git a/Packaging/Files/otbenv.profile b/Packaging/Files/otbenv.profile index 1e147d1c0528dbe4a16d99e76ac040989773aaf8..c98c77a451515aabf146a123668954b9dad91533 100644 --- a/Packaging/Files/otbenv.profile +++ b/Packaging/Files/otbenv.profile @@ -19,6 +19,22 @@ # limitations under the License. # +cat_path() +{ + if [ $# -eq 0 ]; then exit 0; fi + if [ $# -eq 1 ]; then echo "$1"; exit 0; fi + cur="$1" + shift 1 + next="$(cat_path $@)" + if [ -z "$cur" ]; then + echo "$next" + elif [ -z "$next" ]; then + echo "$cur" + else + echo "$cur:$next" + fi +} + # The below environment variables only affect current shell # So if you run again from a terminal. you need to run the script again # see how this is sourced in monteverdi.sh and mapla.sh @@ -27,17 +43,13 @@ CMAKE_PREFIX_PATH=OUT_DIR export CMAKE_PREFIX_PATH # check and set OTB_APPLICATION_PATH -if [ -z "$OTB_APPLICATION_PATH" ] || [ "$OTB_APPLICATION_PATH" = "" ]; then - OTB_APPLICATION_PATH=OUT_DIR/lib/otb/applications -else - OTB_APPLICATION_PATH=OUT_DIR/lib/otb/applications:$OTB_APPLICATION_PATH -fi +OTB_APPLICATION_PATH=$(cat_path "OUT_DIR/lib/otb/applications" "$OTB_APPLICATION_PATH") # Add bin direcotory to system PATH -PATH=OUT_DIR/bin:$PATH +PATH=$(cat_path "OUT_DIR/bin" "$PATH") # export PYTHONPATH to import otbApplication.py -PYTHONPATH=OUT_DIR/lib/python:$PYTHONPATH +PYTHONPATH=$(cat_path "OUT_DIR/lib/python" "$PYTHONPATH") # set numeric locale to C LC_NUMERIC=C