<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 26 Oct 2018, at 12:12, <a href="mailto:pass-maillinglist@artursterz.de" style="color:#3983C4">pass-maillinglist@artursterz.de</a> wrote:</p>

</div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">All right, looks like I have found a good solution thanks to my teammate Jonas. It’s a multi-staged lookup. First, look in $PATH, if it’s not there, try to get it from brew, then from macports.</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">I came to the realization that <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">pass</code> should <em>not</em> try to guess which package manager can provide <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">gnu-getopt</code>.</p>

<p dir="auto">If the user has a package manager, it is only reasonable to assume <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">pass</code> was installed using a package manager, and therefore the package manager should patch <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">pass</code> to use <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">gnu-getopt</code> provided by the package manager (and setup as a dependency).</p>

<p dir="auto">So by default, <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">pass</code> should simply use <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">getopt</code> via <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">PATH</code> or possibly <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">gnu-getopt</code> or <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">/usr/local/bin/getopt</code> to avoid any issues that could arise by calling the system’s <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">getopt</code>.</p>

<p dir="auto">What do you think about this?</p>

<h3 style="font-size:1.1em">Pro</h3>

<ol>
<li value="1">Avoids run-time check for <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">brew</code> etc.</li>
<li value="2">Avoids assumptions about where <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">brew</code> etc. actually installs <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">gnu-getopt</code>.</li>
<li value="3">Allows user to have multiple package managers without <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">pass</code> trying to use <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">gnu-getopt</code> from the “wrong” one.</li>
</ol>

<h3 style="font-size:1.1em">Con</h3>

<ol>
<li value="1">Each package manager will need to patch <code style="background-color:#F7F7F7; border-radius:3px; margin:0; padding:0 0.4em" bgcolor="#F7F7F7">platform/darwin.sh</code></li>
</ol>
</div>
</div>
</body>
</html>