From 35e258b17cce90c875a8f11391197fe84bb0bda1 Mon Sep 17 00:00:00 2001 From: Jephte CLAIN Date: Fri, 21 Feb 2014 08:52:19 +0400 Subject: [PATCH] ajouter les options -l et -d --- ussh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/ussh b/ussh index 4e67093..fa0b863 100755 --- a/ussh +++ b/ussh @@ -19,7 +19,21 @@ OPTIONS [options] Les arguments et options de ssh doivent se trouver *APRES* host, pour simplifier leur analyse. -Les options suivantes doivent se trouver *AVANT* le premier argument: +Les options suivantes sont reconnues même quand elle sont spécifiées avant le +premier argument (les options longues ne sont reconnues qu'avant le premier +argument): + -q, --quiet + Mode non verbeux + -t, --tty + Forcer l'allocation d'un TTY + -l, --login USER + Spécifier le user avec lequel se connecter + -o OPTION + Ajouter une option de SSH +Les options suivantes *doivent* se trouver *AVANT* le premier argument: + -d, --domain DOMAIN + Spécifier un domaine par défaut pour les hôtes qui sont spécifiés sans + domaine. -S SSH Spécifier l'exécutable à utiliser pour lancer ssh. -R @@ -92,13 +106,17 @@ function fix_hosts() { action=ssh quiet= tty= +login= options=() +domain= ssh= parse_opts + "${PRETTYOPTS[@]}" \ --help '$exit_with display_help' \ - -q quiet=1 \ - -t tty=1 \ + -q,--quiet quiet=1 \ + -t,--tty tty=1 \ + -l:,--login: login= \ -o options \ + -d:,--domain: domain= \ -S:,--ssh ssh= \ -R,--remove action=remove \ @ args -- "$@" && set -- "${args[@]}" || die "$args" @@ -108,7 +126,7 @@ if [ "$action" == "ssh" ]; then hosts=("$1"); shift fix_hosts - args=(${quiet:+-q} ${tty:+-t}) + args=(${quiet:+-q} ${tty:+-t} ${login:+-l "$login"}) for option in "${options[@]}"; do args=("${args[@]}" -o "$option") done @@ -119,6 +137,7 @@ if [ "$action" == "ssh" ]; then for host in "${hosts[@]}"; do [ -n "$showtitle" ] && etitle "$host" splituserhost "$host" user host + [[ "$host" == *.* ]] || host="$host${domain:+.$domain}" "$ssh" "${user:+$user@}$host" "${args[@]}" [ -n "$showtitle" ] && eend done