#! /bin/sh
#
# kill ssh client: sshkill user@host:port
# setup bash completion: . sshkill
#
if ! grep -q '^ControlPath /tmp/%u/sshmux/%r@%h:%p$' "$HOME/.ssh/config"; then
echo "Your ~/.ssh/config's ControlPath sucks!" >&2
(exit 23)
else
if test "${0:0:1}" = -; then
if ! echo "${BASHOPTS-}" | grep -Eq '(^|:)progcomp(:|$)'; then
echo "source sshmux into something other than a progcomp'able bash" >&2
(exit 23)
else
# setup bash completion
comp_sshkill() {
if test $COMP_CWORD = 1; then
COMPREPLY=($(cd "/tmp/$LOGNAME/sshmux" &&
ls | grep "^${COMP_WORDS[$COMP_CWORD]}.*"))
fi
}
complete -F comp_sshkill sshkill
fi
else
# kill ssh client
set -euf
exec pkill -f "^ssh: /tmp/$LOGNAME/sshmux/$1 \[mux\]$"
fi
fi