ufile: copier en local sans utiliser scp si possible
This commit is contained in:
parent
dec100b23b
commit
8c22012d13
18
ufile
18
ufile
|
@ -26,6 +26,10 @@ forme pattern:destdir[:renamef]
|
|||
sur l'hôte spécifié vers la destination spécifiée, sauf si l'hôte courant est
|
||||
déjà celui mentionné dans la valeur, auquel cas la copie est faite directement
|
||||
dans le répertoire spécifié.
|
||||
Si le user et l'hôte courant sont déjà à la valeur spécifiée, alors la copie
|
||||
est faite en local sans utiliser scp. Cependant, path est alors le chemin
|
||||
complet vers le fichier destination. Si on veut copier le fichier sans le
|
||||
renommer vers un répertoire, il faut mettre un slash e.g user@host:destdir/
|
||||
variables non documentées: interaction(=-i)
|
||||
|
||||
USAGE
|
||||
|
@ -156,13 +160,22 @@ for file in "$@"; do
|
|||
|
||||
userhost=
|
||||
destname="$filename"
|
||||
interaction=-i
|
||||
interaction=--DEFAULT--
|
||||
if [ -n "$renamef" ]; then
|
||||
dest=
|
||||
"$renamef" "$filename" "$pf" "$destdir" || continue
|
||||
if [ -n "$dest" ]; then
|
||||
if [[ "$dest" == *:* ]]; then
|
||||
splitpair "$dest" userhost destdir
|
||||
splitpair "$dest" userhost remotedir
|
||||
if check_userhostname "$userhost"; then
|
||||
# on est déjà avec le bon user sur le bon hôte
|
||||
userhost=
|
||||
if [ -n "$remotedir" ]; then
|
||||
[ "$interaction" == --DEFAULT-- ] && interaction=
|
||||
splitpath "$remotedir" destdir destname
|
||||
[ -n "$destname" ] || destname="$filename"
|
||||
fi
|
||||
fi
|
||||
elif [[ "$dest" == */* ]]; then
|
||||
setx dest=abspath "$dest"
|
||||
setx destdir=dirname -- "$dest"
|
||||
|
@ -172,6 +185,7 @@ for file in "$@"; do
|
|||
fi
|
||||
fi
|
||||
fi
|
||||
[ "$interaction" == --DEFAULT-- ] && interaction=-i
|
||||
|
||||
if [ -z "$userhost" -a -z "$destdir" ]; then
|
||||
eerror "$rule: règle invalide: destdir est vide"
|
||||
|
|
Loading…
Reference in New Issue