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.
|
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
|
Si le nouveau nom contient un chemin, destdir est ignoré et le fichier est
|
||||||
déplacé dans le répertoire spécifié.
|
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
|
USAGE
|
||||||
$scriptname [options] <files...>
|
$scriptname [options] <files...>
|
||||||
|
@ -49,6 +54,7 @@ function joinp() {
|
||||||
args=(%
|
args=(%
|
||||||
--help '$exit_with display_help'
|
--help '$exit_with display_help'
|
||||||
-c:,--config: config=
|
-c:,--config: config=
|
||||||
|
-S:,--ssh: SSH=
|
||||||
-n,--fake fake=1
|
-n,--fake fake=1
|
||||||
-l,--list action=list
|
-l,--list action=list
|
||||||
-e,--edit action=edit
|
-e,--edit action=edit
|
||||||
|
@ -101,7 +107,7 @@ elif [ "$action" == edit ]; then
|
||||||
fi
|
fi
|
||||||
"${EDITOR:-vi}" "$config"
|
"${EDITOR:-vi}" "$config"
|
||||||
exit $?
|
exit $?
|
||||||
else
|
elif [ "$action" != file ]; then
|
||||||
die "bug: $action: action non implémentée"
|
die "bug: $action: action non implémentée"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -148,12 +154,16 @@ for file in "$@"; do
|
||||||
|
|
||||||
eval "[[ \"\$filename\" == $(qwc "$pattern") ]]" || continue
|
eval "[[ \"\$filename\" == $(qwc "$pattern") ]]" || continue
|
||||||
|
|
||||||
|
userhost=
|
||||||
destname="$filename"
|
destname="$filename"
|
||||||
|
interaction=-i
|
||||||
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
|
||||||
|
elif [[ "$dest" == */* ]]; then
|
||||||
setx dest=abspath "$dest"
|
setx dest=abspath "$dest"
|
||||||
setx destdir=dirname -- "$dest"
|
setx destdir=dirname -- "$dest"
|
||||||
setx destname=dirname -- "$dest"
|
setx destname=dirname -- "$dest"
|
||||||
|
@ -163,17 +173,25 @@ for file in "$@"; do
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -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"
|
||||||
break
|
break
|
||||||
fi
|
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"
|
setx dest=joinp "$destdir" "$destname"
|
||||||
estep "$filename --> $dest"
|
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 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"
|
docmd mv -i "$file" "$dest" || die "problème lors du déplacement du fichier"
|
||||||
|
fi
|
||||||
found=1
|
found=1
|
||||||
break
|
break
|
||||||
done
|
done
|
||||||
|
|
Loading…
Reference in New Issue