48 lines
1.3 KiB
Bash
Executable File
48 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# ssh-url - Handler pour les URLs ssh://
|
|
# Reçoit une URL ssh://user@host et ouvre un terminal avec la connexion SSH
|
|
#
|
|
|
|
# URL reçue en argument (ex: ssh://gilles@10.0.0.24)
|
|
URL="$1"
|
|
|
|
if [ -z "$URL" ]; then
|
|
echo "Usage: $0 ssh://user@host"
|
|
exit 1
|
|
fi
|
|
|
|
# Extraire la partie user@host en supprimant le préfixe ssh://
|
|
SSH_TARGET="${URL#ssh://}"
|
|
|
|
# Supprimer un éventuel / final
|
|
SSH_TARGET="${SSH_TARGET%/}"
|
|
|
|
if [ -z "$SSH_TARGET" ]; then
|
|
echo "Erreur: impossible d'extraire la cible SSH de l'URL: $URL"
|
|
exit 1
|
|
fi
|
|
|
|
# Détecter le terminal disponible et lancer SSH
|
|
# Liste des terminaux supportés (ordre de préférence)
|
|
if command -v gnome-terminal &> /dev/null; then
|
|
gnome-terminal -- ssh "$SSH_TARGET"
|
|
elif command -v xfce4-terminal &> /dev/null; then
|
|
xfce4-terminal -e "ssh $SSH_TARGET"
|
|
elif command -v konsole &> /dev/null; then
|
|
konsole -e ssh "$SSH_TARGET"
|
|
elif command -v xterm &> /dev/null; then
|
|
xterm -e ssh "$SSH_TARGET"
|
|
elif command -v terminator &> /dev/null; then
|
|
terminator -e "ssh $SSH_TARGET"
|
|
elif command -v tilix &> /dev/null; then
|
|
tilix -e "ssh $SSH_TARGET"
|
|
else
|
|
# Fallback: notification d'erreur si possible
|
|
if command -v notify-send &> /dev/null; then
|
|
notify-send "SSH Handler" "Aucun terminal graphique trouvé"
|
|
fi
|
|
echo "Erreur: aucun terminal graphique trouvé"
|
|
exit 1
|
|
fi
|