changeset 524:24f7a481d284

shell: cache openssl prefix from homebrew Turns out homebrew costs about 800ms to figure this out, experimentally. :(
author Augie Fackler <raf@durin42.com>
date Mon, 14 Nov 2022 10:40:29 -0500
parents a5a4f9e12c9f
children b0fa9e7cadac
files .shell.d/99.openssl.sh
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/.shell.d/99.openssl.sh
+++ b/.shell.d/99.openssl.sh
@@ -1,5 +1,14 @@
 if hash brew 2>/dev/null ; then
-    export OPENSSL_INCLUDE_DIR=`brew --prefix openssl`/include
-    export OPENSSL_LIB_DIR=`brew --prefix openssl`/lib
-    export DEP_OPENSSL_INCLUDE=`brew --prefix openssl`/include
+    BREW_SSL_PREFIX_CACHE_FILE="${XDG_CACHE_HOME:-$HOME/.cache}/durin42-zsh/brew-openssl-prefix"
+    if [ -e "$BREW_SSL_PREFIX_CACHE_FILE" ] ; then
+        BREW_OPENSSL_PREFIX="$(cat $BREW_SSL_PREFIX_CACHE_FILE)"
+    fi
+    if [ -z "$BREW_OPENSSL_PREFIX" -o ! -d "$BREW_OPENSSL_PREFIX" ] ; then
+        BREW_OPENSSL_PREFIX="$(brew --prefix openssl)"
+        mkdir -p "$(dirname $BREW_SSL_PREFIX_CACHE_FILE)"
+        echo "$BREW_OPENSSL_PREFIX" > "$BREW_SSL_PREFIX_CACHE_FILE"
+    fi
+    export OPENSSL_INCLUDE_DIR="${BREW_OPENSSL_PREFIX}/include"
+    export OPENSSL_LIB_DIR="${BREW_OPENSSL_PREFIX}/lib"
+    export DEP_OPENSSL_INCLUDE="${BREW_OPENSSL_PREFIX}/include"
 fi