dotfiles/bin/vncsconnect

48 lines
888 B
Text
Raw Normal View History

2023-04-13 00:04:20 +02:00
#!/bin/bash
# Variables
declare -a ssh_args
2023-04-13 00:04:20 +02:00
# Fonction
ssh_bridge_already_exists() {
[ -n "$(lsof -nP -i TCP -s TCP:LISTEN | awk '($1 == "ssh" && $9 ~ /.*:'"${1}"'/) { print }')" ]
}
# Sélectionner le viewer adapté à la session
if [ -n "$WAYLAND_DISPLAY" ]; then
vncviewer=wlvncc
else
vncviewer=vncviewer
separator=:
fi
2023-04-13 00:04:20 +02:00
# Arguments
while [ -n "$1" ]; do
case "$1" in
--)
shift
break
;;
*)
ssh_args+=("$1")
shift
;;
esac
done
2023-04-13 00:04:20 +02:00
# Initialiser les arguments du viewer
args=(localhost "${ssh_args[1]}")
if [ -n "$separator" ]; then
args=("${args[*]// /${separator}/}")
fi
2023-04-13 00:04:20 +02:00
# Exécution
if ! ssh_bridge_already_exists "${ssh_args[1]}"; then
ssh-fwd "${ssh_args[@]}" -- "$@" || exit
else
echo "Le pont SSH existe déjà !"
fi
exec "$vncviewer" \
"${args[@]}"
2023-04-13 00:04:20 +02:00