commit c01569e1565ddfc7c394ada6a61e73be4bf5629c
parent 0a6a240dcbc3e95b4a907dd1de06e52ce57a5149
Author: Sivaldo <gxixtx@xsxixvxaxlxdxoxdxaxvxix.xcxoxm>
Date: Tue, 30 Jun 2026 21:16:49 -0300
fix(backup): adicionar modo estrito e validacao para caminhos ausentes
Diffstat:
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/.local/bin/backup b/.local/bin/backup
@@ -1,5 +1,7 @@
#!/bin/sh
+set -eu
+
# --- Configurações XDG ---
XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
XDG_DOCUMENTS_DIR="${XDG_DOCUMENTS_DIR:-$HOME/documents}"
@@ -71,11 +73,18 @@ for entry; do
loc="${entry#*:}"
if [ "$ACTION" = "push" ]; then
+ # Ignora e pula a pasta se ela não existir localmente
+ if [ ! -d "$loc" ]; then
+ echo "Aviso: Diretório local '$loc' não existe. Ignorando push..."
+ continue
+ fi
+
rclone sync "$loc" "$REMOTE:$rem" \
--delete-excluded \
--backup-dir="$REMOTE:trash/$(date +%Y-%m-%d)/$rem" \
-P
else
+ # No pull, cria o diretório local se não existir para receber os arquivos
mkdir -p "$loc"
rclone sync "$REMOTE:$rem" "$loc" -P
fi
@@ -85,7 +94,12 @@ done
BOOKMARKS_LOC="$XDG_DATA_HOME/bookmarks"
if [ "$ACTION" = "push" ]; then
- [ -f "$BOOKMARKS_LOC" ] && rclone copyto "$BOOKMARKS_LOC" "$REMOTE:bookmarks" -P
+ # Só faz o rclone copyto se o arquivo de bookmarks realmente existir localmente
+ if [ -f "$BOOKMARKS_LOC" ]; then
+ rclone copyto "$BOOKMARKS_LOC" "$REMOTE:bookmarks" -P
+ else
+ echo "Aviso: Arquivo de bookmarks '$BOOKMARKS_LOC' não encontrado. Ignorando push..."
+ fi
else
mkdir -p "$(dirname "$BOOKMARKS_LOC")"
rclone copyto "$REMOTE:bookmarks" "$BOOKMARKS_LOC" -P