#!/usr/bin/sh
# Try to find a terminal emulator that's installed and run it.
set -eu

is_cmd(){
    command -v "$1" >/dev/null
}

exec_cmd(){
    if is_cmd "$1"; then
        exec "$1"
    fi
}

reassign_term(){
    if ! is_cmd "$1"; then
        return
    fi
    case "$1" in
        gnome-terminal) terminal="qubes-run-$1";;
        kgx) terminal="qubes-run-gnome-console";;
    esac
}

if is_cmd "${TERMINAL:-}"; then
    terminal="${TERMINAL}"
    reassign_term "$terminal"
    exec_cmd "$terminal"
fi

for terminal in \
    x-terminal-emulator ptyxis gnome-terminal kgx xfce4-terminal konsole \
    urxvt rxvt termit terminator Eterm aterm roxterm termite lxterminal \
    mate-terminal terminology st lxterm xterm
do
    reassign_term "$terminal"
    exec_cmd "$terminal"
done

echo "ERROR: No suitable terminal found." >&2
exit 1
