So, I have a new version pasted below.

Now, I set $PATH for the script containing the three possible default paths. If 
we then find, that the macOS default getopt is used, we start the lookup as 
proposed before.

There is still some not so nice thing. This will only speed up things for users 
using the default paths of brew and macports. All other users will make the 
command -v tests. If we could persist the found path at least for the session, 
it would be great. But I can not find a way to do this except writing a file 
with the path somewhere, which feels wrong.

Any further suggestions?


diff --git a/src/platform/darwin.sh b/src/platform/darwin.sh
index 342ecce..787f5b0 100644
--- a/src/platform/darwin.sh
+++ b/src/platform/darwin.sh
@@ -43,6 +43,22 @@ qrcode() {
        fi
 }

-GETOPT="$(brew --prefix gnu-getopt 2>/dev/null || { which port &>/dev/null && 
echo /opt/local; } || echo /usr/local)/bin/getopt"
+export PATH="/usr/local/opt/gnu-getopt/bin:/opt/local/bin:/usr/local/bin:$PATH"
+if [ "$(command -v getopt)" = "/usr/bin/getopt" ]; then
+               GETOPT_PREFIX=""
+       if command -v brew >/dev/null; then
+               GETOPT_PREFIX="$(brew --prefix)/opt/gnu-getopt"
+               if ![ -x "$GETOPT_PREFIX/bin/getopt" ]; then
+                       GETOPT_PREFIX=""
+               fi
+       elif [[ $GETOPT_PREFIX ]] && command -v port >/dev/null; then
+               GETOPT_PREFIX="/opt/local"
+               if ![ -x "GETOPT_PREFIX/bin/getopt" ]; then
+                       GETOPT_PREFIX=""
+               fi
+       fi
+       GETOPT="${GETOPT_PREFIX:-/usr/local}/bin/getopt"
+fi
+
_______________________________________________
Password-Store mailing list
[email protected]
https://lists.zx2c4.com/mailman/listinfo/password-store

Reply via email to