#!/bin/zsh

touch ~/.dmenu_ssh
host=$(tac ~/.dmenu_ssh | dmenu -p ssh)
[ $? -ne 0 ] && exit
sed -i -e "/^$host$/d" ~/.dmenu_ssh
echo "$host" >> ~/.dmenu_ssh
if [ -n "$host" ] ; then
	for arg in ${=host} ; do
		[ ${arg:0:1} != "-" ] && break
	done
	TMP=$(mktemp /tmp/$(basename $0).XXXXXX)
	echo $TMP
        echo "
while true ; do
	ssh $=host
	ret=\$?
	if [ \$ret -eq 0 ] ; then
		break
	fi
	echo ; echo ; echo
	read \"retry?command failed with code \$ret, retry [Yn]:\"
	case \$retry in
		Y|y|"") ;;
		*) break 2 ;;
	esac
done
rm -v $TMP
	""" > $TMP
	urxvt -title "$arg" -e $SHELL $TMP &
else
	urxvt -e zsh &
fi

