#!/usr/bin/sh

MOSH=0
USER=jslaby
declare -a SSH=('ssh' '-CX' '-o' 'StrictHostKeyChecking=no')

while getopts "mr" OPT; do
	case "$OPT" in
		m) MOSH=1
		;;
		r) USER=root
		;;
	esac
done

shift $(($OPTIND-1))
HOST="$1"
shift

for SUFFIX in arch.suse.cz arch.suse.de suse.de suse.cz qa.suse.de arch.nue2.suse.org; do
	FQDN="$HOST.$SUFFIX"
	IP="$(host -t A "$FQDN" ${SU_NAMESERVER:+"$SU_NAMESERVER"} | sed -ne 's/.* has address // p')"
	if [ -n "$IP" ]; then
		if [[ "$SUFFIX" == *.de || "$SUFFIX" == *nue* ]]; then
			SSH+=('-o' 'ServerAliveInterval=60')
		fi
		break
	fi
done

if [ -z "$IP" ]; then
	echo "no IP found for $HOST"
	exit 1
fi

ssh-keygen -R "$IP" >/dev/null 2>&1

set -x

if [ $MOSH -eq 1 ]; then
	SSH_ARG="$(printf "%q " "${SSH[@]}")"
	exec mosh --ssh="${SSH_ARG}" "$USER@$IP" "$@"
else
	exec "${SSH[@]}" "$USER@$IP" "$@"
fi
