Megnas-Config/.scripts/cfg_save.sh

39 lines
841 B
Bash
Raw Normal View History

2026-02-19 20:27:50 +01:00
#!/usr/bin/env bash
set -euo pipefail
TARGET="$HOME/.saved_cfg"
FOLDERS_FILE="$TARGET/folders"
if [[ ! -f "$FOLDERS_FILE" ]]; then
echo "Error: $FOLDERS_FILE not found"
exit 1
fi
mkdir -p "$TARGET"
while IFS= read -r line || [[ -n "$line" ]]; do
# Trim whitespace
folder="$(echo "$line" | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')"
# Skip empty lines and comments
[[ -z "$folder" || "$folder" =~ ^# ]] && continue
SRC_PATH="$HOME/$folder"
DEST_PATH="$TARGET/$folder"
if [[ -d "$SRC_PATH" ]]; then
echo "Syncing $SRC_PATH -> $DEST_PATH"
mkdir -p "$(dirname "$DEST_PATH")"
rsync -a --delete \
--exclude='.git/' \
"$SRC_PATH/" "$DEST_PATH/"
else
echo "Skipping $SRC_PATH (not found)"
fi
done < "$FOLDERS_FILE"
echo "Sync complete."