OSDN Git Service

improve the shell profile file
authorIvailo Monev <xakepa10@laimg.moc>
Tue, 22 Aug 2017 16:31:32 +0000 (16:31 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Tue, 22 Aug 2017 16:31:32 +0000 (16:31 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
cmake/profile.sh.cmake

index ea5670b..c7c09e7 100644 (file)
@@ -1,15 +1,29 @@
 #!/bin/sh
 
-if [ -n "$LD_LIBRARY_PATH" ];then
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:@KATIE_LIBRARIES_FULL@"
-else
-    export LD_LIBRARY_PATH="@KATIE_LIBRARIES_FULL@"
-fi
-
-if [ -n "$PKG_CONFIG_PATH" ];then
-    export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:@KATIE_PKGCONFIG_FULL@"
-else
-    export PKG_CONFIG_PATH="@KATIE_PKGCONFIG_FULL@"
-fi
+# NOTE: safe as in does not append if already in the variable
+safe_path_append() {
+    oldIFS="$IFS"
+    IFS=":"
+    found=""
+    for i in $2;do
+        # TODO: maybe check for match without trailing slash too?
+        if [ "$i" = "$3" ];then
+            found="yes"
+        fi
+    done
+    IFS="$oldIFS"
+
+    if [ "$found" != "yes" ];then
+        export "$1"="$2:$3"
+    fi
+}
+
+safe_path_append PATH "$PATH" "@KATIE_BINARIES_FULL@"
+
+safe_path_append LD_LIBRARY_PATH "$LD_LIBRARY_PATH" "@KATIE_LIBRARIES_FULL@"
+
+safe_path_append PKG_CONFIG_PATH "$PKG_CONFIG_PATH" "@KATIE_PKGCONFIG_FULL@"
 
 export Katie_DIR="@KATIE_CMAKE_FULL@"
+
+unset -f safe_path_append