#!/bin/sh if ! [ "$DID_SELF_UPDATE" ] then GIT_WORK_TREE=. git checkout -f master -- hooks/post-receive DID_SELF_UPDATE=y exec hooks/post-receive fi WARNINGS=y warn() { if [ "$WARNINGS" ] then printf '%s: Warning: %s\n' "$0" "$*" >&2 fi } GET_NOMIC_USER() { if [ "$NOMIC_USER" ] then return elif [ "$SSH_USER_AUTH" ] && [ -f "$SSH_USER_AUTH" ] then read authtype keytype keyval < "$SSH_USER_AUTH" [ "$authtype" = publickey ] || exit for keyname in authorized_keys.d/* do while read a b _ do case "$a $b" in "$keytype $keyval") NOMIC_USER=${keyname#authorized_keys.d/} break ;; esac done < "$keyname" done true else warn "\$SSH_USER_AUTH missing. Try putting 'ExposeAuthInfo yes' in /etc/ssh/sshd_config" false fi } GIT_WORK_TREE=. git checkout -f master -- authorized_keys.d/\* if GET_NOMIC_USER then warn "NOMIC_USER=$NOMIC_USER" fi