<div dir="ltr"><div>Hi Radon,<br><br></div>Thanks for the tip, you set me on the right track. Instead of using an environmental variable, I alternated between making my hook executable and not based on whether the specified sub-directory needed to be reinitialized. This is what I came up with:<br><br>```<br><span style="font-family:monospace">#!/bin/sh<br>#<br># This git hook makes it easy to re-initialize password-stores that are<br># shared between multiple computers/users. After each commit, this hook<br># re-encrypts passwords in the $SUBDIR sub-directory.<br>#<br># Copy the hook to .git/hooks/post-commit<br><br>gitdir="$(git rev-parse --git-dir)"<br>hook="$gitdir/hooks/post-commit"<br><br># Make hook executable by default<br>chmod +x $hook<br><br># Loop over sub-directories<br>for SUBDIR in 'subdir1' 'subdir2'; do<br>    echo "=== Checking if last commit contained keys/commits in $SUBDIR"<br>    if git show --name-only | grep "^$SUBDIR"<br>    then<br>        echo "=== Found a key/commit in $SUBDIR"<br>        echo "=== Running pass..."<br><br>        # Disable post-commit temporarily, this trick is from:<br>        #    <a href="https://coderwall.com/p/dv-dgg/bypass-post-commit-hook-temporarily">https://coderwall.com/p/dv-dgg/bypass-post-commit-hook-temporarily</a><br>        [ -x $hook ] && chmod -x $hook<br><br>        pass init -p $SUBDIR $(cat $HOME/.password-store/$SUBDIR/.gpg-id)<br>        git commit --all --amend #--no-verify<br>        echo "=== Done running pass..."<br><br>        # Re-enable post-commit<br>        chmod +x $hook<br>        exit 0<br>    fi<br>    echo "=== No keys/commits associated with $SUBDIR"<br>done</span><br>```<br><br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, 15 Mar 2018 at 22:13 Radon Rosborough <<a href="mailto:radon.neon@gmail.com">radon.neon@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">> This doesn't work because it goes into an infinite loop.<br>
<br>
I'm no expert on Git hooks, but can't you set an environment variable<br>
when you run pass-init, and then have your hook script no-op if that<br>
variable is set?<br>
<br>
Best,<br>
Radon<br>
</blockquote></div>