ajouter les options -l et -d

This commit is contained in:
Jephté Clain 2014-02-21 08:52:19 +04:00
parent ce8efb6282
commit 35e258b17c
1 changed files with 23 additions and 4 deletions

27
ussh
View File

@ -19,7 +19,21 @@ OPTIONS
[options] [options]
Les arguments et options de ssh doivent se trouver *APRES* host, pour Les arguments et options de ssh doivent se trouver *APRES* host, pour
simplifier leur analyse. 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 -S SSH
Spécifier l'exécutable à utiliser pour lancer ssh. Spécifier l'exécutable à utiliser pour lancer ssh.
-R -R
@ -92,13 +106,17 @@ function fix_hosts() {
action=ssh action=ssh
quiet= quiet=
tty= tty=
login=
options=() options=()
domain=
ssh= ssh=
parse_opts + "${PRETTYOPTS[@]}" \ parse_opts + "${PRETTYOPTS[@]}" \
--help '$exit_with display_help' \ --help '$exit_with display_help' \
-q quiet=1 \ -q,--quiet quiet=1 \
-t tty=1 \ -t,--tty tty=1 \
-l:,--login: login= \
-o options \ -o options \
-d:,--domain: domain= \
-S:,--ssh ssh= \ -S:,--ssh ssh= \
-R,--remove action=remove \ -R,--remove action=remove \
@ args -- "$@" && set -- "${args[@]}" || die "$args" @ args -- "$@" && set -- "${args[@]}" || die "$args"
@ -108,7 +126,7 @@ if [ "$action" == "ssh" ]; then
hosts=("$1"); shift hosts=("$1"); shift
fix_hosts fix_hosts
args=(${quiet:+-q} ${tty:+-t}) args=(${quiet:+-q} ${tty:+-t} ${login:+-l "$login"})
for option in "${options[@]}"; do for option in "${options[@]}"; do
args=("${args[@]}" -o "$option") args=("${args[@]}" -o "$option")
done done
@ -119,6 +137,7 @@ if [ "$action" == "ssh" ]; then
for host in "${hosts[@]}"; do for host in "${hosts[@]}"; do
[ -n "$showtitle" ] && etitle "$host" [ -n "$showtitle" ] && etitle "$host"
splituserhost "$host" user host splituserhost "$host" user host
[[ "$host" == *.* ]] || host="$host${domain:+.$domain}"
"$ssh" "${user:+$user@}$host" "${args[@]}" "$ssh" "${user:+$user@}$host" "${args[@]}"
[ -n "$showtitle" ] && eend [ -n "$showtitle" ] && eend
done done