From 134c077b0607d702f248d26eea49360ae06d0450 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Mon, 29 Jul 2019 17:52:13 -0400 Subject: factor out GET_NOMIC_USER --- hooks/post-receive | 63 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 24 deletions(-) diff --git a/hooks/post-receive b/hooks/post-receive index 67e7610..74fe96b 100755 --- a/hooks/post-receive +++ b/hooks/post-receive @@ -4,34 +4,49 @@ then GIT_WORK_TREE=. git checkout -f master -- hooks/post-receive DID_SELF_UPDATE=y exec hooks/post-receive fi -exec >&2 -GIT_WORK_TREE=. git checkout -f master -- authorized_keys.d/\* - -if [ "$SSH_USER_AUTH" ] && [ -f "$SSH_USER_AUTH" ] -then - read authtype keytype keyval < "$SSH_USER_AUTH" - [ "$authtype" = publickey ] || exit +WARNINGS=y - user= - for keyname in authorized_keys.d/* - do - while read a b _ - do - case "$a $b" in - "$keytype $keyval") - user=${keyname#authorized_keys.d/} - break - ;; - esac - done < "$keyname" - done +warn() +{ + if [ "$WARNINGS" ] + then + printf '%s: Warning: %s\n' "$0" "$*" >&2 + fi +} - if [ "$user" ] +GET_NOMIC_USER() +{ + if [ "$NOMIC_USER" ] then - echo "user=$user" + 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 +} -else - echo "\$SSH_USER_AUTH missing. Try putting 'ExposeAuthInfo yes' in /etc/ssh/sshd_config" +GIT_WORK_TREE=. git checkout -f master -- authorized_keys.d/\* + +if GET_NOMIC_USER +then + warn "NOMIC_USER=$NOMIC_USER" fi -- cgit v1.2.3