ufile: support du classement par scp
This commit is contained in:
parent
c82c90840e
commit
dec100b23b
26
ufile
26
ufile
|
@ -22,6 +22,11 @@ forme pattern:destdir[:renamef]
|
|||
fonction retourne un code d'erreur autre que zéro, la règle est ignorée.
|
||||
Si le nouveau nom contient un chemin, destdir est ignoré et le fichier est
|
||||
déplacé dans le répertoire spécifié.
|
||||
Si dest est de la forme [user@]host:path alors le fichier est copié par scp
|
||||
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é.
|
||||
variables non documentées: interaction(=-i)
|
||||
|
||||
USAGE
|
||||
$scriptname [options] <files...>
|
||||
|
@ -49,6 +54,7 @@ function joinp() {
|
|||
args=(%
|
||||
--help '$exit_with display_help'
|
||||
-c:,--config: config=
|
||||
-S:,--ssh: SSH=
|
||||
-n,--fake fake=1
|
||||
-l,--list action=list
|
||||
-e,--edit action=edit
|
||||
|
@ -101,7 +107,7 @@ elif [ "$action" == edit ]; then
|
|||
fi
|
||||
"${EDITOR:-vi}" "$config"
|
||||
exit $?
|
||||
else
|
||||
elif [ "$action" != file ]; then
|
||||
die "bug: $action: action non implémentée"
|
||||
fi
|
||||
|
||||
|
@ -148,12 +154,16 @@ for file in "$@"; do
|
|||
|
||||
eval "[[ \"\$filename\" == $(qwc "$pattern") ]]" || continue
|
||||
|
||||
userhost=
|
||||
destname="$filename"
|
||||
interaction=-i
|
||||
if [ -n "$renamef" ]; then
|
||||
dest=
|
||||
"$renamef" "$filename" "$pf" "$destdir" || continue
|
||||
if [ -n "$dest" ]; then
|
||||
if [[ "$dest" == */* ]]; then
|
||||
if [[ "$dest" == *:* ]]; then
|
||||
splitpair "$dest" userhost destdir
|
||||
elif [[ "$dest" == */* ]]; then
|
||||
setx dest=abspath "$dest"
|
||||
setx destdir=dirname -- "$dest"
|
||||
setx destname=dirname -- "$dest"
|
||||
|
@ -163,17 +173,25 @@ for file in "$@"; do
|
|||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$destdir" ]; then
|
||||
if [ -z "$userhost" -a -z "$destdir" ]; then
|
||||
eerror "$rule: règle invalide: destdir est vide"
|
||||
break
|
||||
fi
|
||||
|
||||
if [ -n "$userhost" ]; then
|
||||
estep "$filename --> $dest"
|
||||
ask_yesno $interaction "Voulez-vous continuer?" O || { found=x; break; }
|
||||
|
||||
docmd scp ${SSH:+-S "$SSH"} "$file" "$dest" || die "problème lors de la copie du fichier"
|
||||
|
||||
else
|
||||
setx dest=joinp "$destdir" "$destname"
|
||||
estep "$filename --> $dest"
|
||||
ask_yesno -i "Voulez-vous continuer?" O || { found=x; break; }
|
||||
ask_yesno $interaction "Voulez-vous continuer?" O || { found=x; break; }
|
||||
|
||||
docmd mkdir -p "$destdir" || die "$destdir: impossible de créer le répertoire"
|
||||
docmd mv -i "$file" "$dest" || die "problème lors du déplacement du fichier"
|
||||
fi
|
||||
found=1
|
||||
break
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue