dk: vérifier que le répertoire destination existe avant rsync
This commit is contained in:
parent
c147a0cef3
commit
e2b2f49214
34
dk
34
dk
|
@ -806,21 +806,39 @@ function build_update_apps() {
|
||||||
if [ -d "$SRC" ]; then
|
if [ -d "$SRC" ]; then
|
||||||
[ -n "$have_RSYNC_OPTS" ] || RSYNC_OPTS=(--delete --delete-excluded)
|
[ -n "$have_RSYNC_OPTS" ] || RSYNC_OPTS=(--delete --delete-excluded)
|
||||||
local -a rsync_opts; rsync_opts=(-a --exclude .git/ "${RSYNC_OPTS[@]}")
|
local -a rsync_opts; rsync_opts=(-a --exclude .git/ "${RSYNC_OPTS[@]}")
|
||||||
|
|
||||||
SRC="${SRC%/}/"
|
SRC="${SRC%/}/"
|
||||||
DEST="${DEST%/}/"
|
DEST="${DEST%/}"
|
||||||
|
if [ ! -d "$DEST" ]; then
|
||||||
|
# s'assurer que le répertoire parent existe
|
||||||
|
mkdir -p "$(dirname -- "$DEST")" || { eend; return 1; }
|
||||||
|
fi
|
||||||
|
DEST="$DEST/"
|
||||||
|
|
||||||
estep "Synchro $SRC --> $DEST"
|
estep "Synchro $SRC --> $DEST"
|
||||||
rsync "${rsync_opts[@]}" "$SRC" "$DEST" || { eend; return 1; }
|
rsync "${rsync_opts[@]}" "$SRC" "$DEST" || { eend; return 1; }
|
||||||
|
|
||||||
elif [ -f "$SRC" ]; then
|
elif [ -f "$SRC" ]; then
|
||||||
[ -n "$have_RSYNC_OPTS" ] || RSYNC_OPTS=()
|
[ -n "$have_RSYNC_OPTS" ] || RSYNC_OPTS=()
|
||||||
local -a rsync_opts; rsync_opts=(-a "${RSYNC_OPTS[@]}")
|
local -a rsync_opts; rsync_opts=(-a "${RSYNC_OPTS[@]}")
|
||||||
if [ "${DEST%/}" != "$DEST" -o -d "$DEST" ]; then
|
|
||||||
DEST="${DEST%/}/"
|
if [ "${DEST%/}" != "$DEST" -a ! -d "$DEST" ]; then
|
||||||
estep "Synchro $SRC --> $DEST"
|
# on demande à ce que DEST soit un répertoire mais il
|
||||||
rsync "${rsync_opts[@]}" "$SRC" "$DEST" || { eend; return 1; }
|
# n'existe pas: le créer
|
||||||
else
|
DEST="${DEST%/}"
|
||||||
estep "Synchro $SRC --> $DEST"
|
mkdir -p "$DEST" || { eend; return 1; }
|
||||||
rsync "${rsync_opts[@]}" "$SRC" "$DEST" || { eend; return 1; }
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -d "$DEST" ]; then
|
||||||
|
DEST="$DEST/"
|
||||||
|
elif [ ! -f "$DEST" ]; then
|
||||||
|
# la destination n'existe pas: s'assurer que le répertoire
|
||||||
|
# parent existe
|
||||||
|
mkdir -p "$(dirname -- "$DEST")" || { eend; return 1; }
|
||||||
|
fi
|
||||||
|
estep "Synchro $SRC --> $DEST"
|
||||||
|
rsync "${rsync_opts[@]}" "$SRC" "$DEST" || { eend; return 1; }
|
||||||
|
|
||||||
else
|
else
|
||||||
eerror "$app: $SRC: répertoire/fichier introuvable"
|
eerror "$app: $SRC: répertoire/fichier introuvable"
|
||||||
eend; return 1
|
eend; return 1
|
||||||
|
|
Loading…
Reference in New Issue