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
|
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
|
déjà celui mentionné dans la valeur, auquel cas la copie est faite directement
|
||||||
dans le répertoire spécifié.
|
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)
|
variables non documentées: interaction(=-i)
|
||||||
|
|
||||||
USAGE
|
USAGE
|
||||||
|
@ -156,13 +160,22 @@ for file in "$@"; do
|
||||||
|
|
||||||
userhost=
|
userhost=
|
||||||
destname="$filename"
|
destname="$filename"
|
||||||
interaction=-i
|
interaction=--DEFAULT--
|
||||||
if [ -n "$renamef" ]; then
|
if [ -n "$renamef" ]; then
|
||||||
dest=
|
dest=
|
||||||
"$renamef" "$filename" "$pf" "$destdir" || continue
|
"$renamef" "$filename" "$pf" "$destdir" || continue
|
||||||
if [ -n "$dest" ]; then
|
if [ -n "$dest" ]; then
|
||||||
if [[ "$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
|
elif [[ "$dest" == */* ]]; then
|
||||||
setx dest=abspath "$dest"
|
setx dest=abspath "$dest"
|
||||||
setx destdir=dirname -- "$dest"
|
setx destdir=dirname -- "$dest"
|
||||||
|
@ -172,6 +185,7 @@ for file in "$@"; do
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
[ "$interaction" == --DEFAULT-- ] && interaction=-i
|
||||||
|
|
||||||
if [ -z "$userhost" -a -z "$destdir" ]; then
|
if [ -z "$userhost" -a -z "$destdir" ]; then
|
||||||
eerror "$rule: règle invalide: destdir est vide"
|
eerror "$rule: règle invalide: destdir est vide"
|
||||||
|
|
Loading…
Reference in New Issue