]> granicus.if.org Git - esp-idf/commitdiff
tools: added realpath_int() for MacOS script path resolution
authorMartin Vychodil <martin@espressif.com>
Tue, 16 Jul 2019 13:38:40 +0000 (15:38 +0200)
committerMartin Vychodil <martin@espressif.com>
Thu, 18 Jul 2019 11:36:11 +0000 (13:36 +0200)
JIRA IDF-790

export.sh

index a136ab28568df811a6aa8402ac8edb6215f29c7e..9f8f98f5aa525fb260b23f59fa38225f4955731f 100644 (file)
--- a/export.sh
+++ b/export.sh
@@ -1,5 +1,16 @@
 # This script should be sourced, not executed.
 
+function realpath_int() {
+    wdir="$PWD"; [ "$PWD" = "/" ] && wdir=""
+    case "$0" in
+        /*) scriptdir="${0}";;
+        *) scriptdir="$wdir/${0#./}";;
+    esac
+    scriptdir="${scriptdir%/*}"
+    echo "$scriptdir"
+}
+
+
 function idf_export_main() {
     # The file doesn't have executable permissions, so this shouldn't really happen.
     # Doing this in case someone tries to chmod +x it and execute...
@@ -14,8 +25,13 @@ function idf_export_main() {
         # If using bash, try to guess IDF_PATH from script location
         if [[ -n "${BASH_SOURCE}" ]]
         then
-            script_name="$(readlink -f $BASH_SOURCE)"
-            export IDF_PATH="$(dirname ${script_name})"
+            if [[ "$OSTYPE" == "darwin"* ]]; then
+                script_dir="$(realpath_int $BASH_SOURCE)"
+            else
+                script_name="$(readlink -f $BASH_SOURCE)"
+                script_dir="$(dirname $script_name)"
+            fi
+            export IDF_PATH="${script_dir}"
         else
             echo "IDF_PATH must be set before sourcing this script"
             return 1
@@ -67,6 +83,7 @@ function idf_export_main() {
     unset path_entry
     unset IDF_ADD_PATHS_EXTRAS
     unset idf_exports
+
     # Not unsetting IDF_PYTHON_ENV_PATH, it can be used by IDF build system
     # to check whether we are using a private Python environment
 
@@ -79,4 +96,5 @@ function idf_export_main() {
 
 idf_export_main
 
+unset realpath_int
 unset idf_export_main