Make backup optional in transform script

This commit is contained in:
nevaforget 2026-03-30 22:32:54 +02:00
parent a86b95dd58
commit 2fba1b571d

View File

@ -72,7 +72,7 @@ fi
echo "" echo ""
log "Actions:" log "Actions:"
log " 1. Backup ~/.config/, ~/.zshrc, /etc/xdg/ to ~/moonarch-backup-<ts>.tar.gz" log " 1. (Optional) Backup ~/.config/, ~/.zshrc, /etc/xdg/"
log " 2. Install moonarch-git package (pulls in all dependencies)" log " 2. Install moonarch-git package (pulls in all dependencies)"
log " 3. Disable conflicting DMs, enable greetd" log " 3. Disable conflicting DMs, enable greetd"
log " 4. Overwrite ALL user configs (~/.config/)" log " 4. Overwrite ALL user configs (~/.config/)"
@ -139,33 +139,40 @@ if ! confirm "Proceed?"; then
fi fi
# ============================================================ # ============================================================
# Phase 3: Backup # Phase 3: Backup (optional)
# ============================================================ # ============================================================
BACKUP_FILE="$HOME/moonarch-backup-$(date +%Y%m%d-%H%M%S).tar.gz" BACKUP_FILE=""
log "Creating backup: $BACKUP_FILE" SYSTEM_BACKUP=""
# Build list of paths that actually exist if confirm "Create backup of current configs before overwriting?"; then
BACKUP_PATHS=() BACKUP_FILE="$HOME/moonarch-backup-$(date +%Y%m%d-%H%M%S).tar.gz"
[[ -d "$HOME/.config" ]] && BACKUP_PATHS+=(".config") log "Creating backup: $BACKUP_FILE"
[[ -f "$HOME/.zshrc" ]] && BACKUP_PATHS+=(".zshrc")
[[ -d "$HOME/.zshrc.d" ]] && BACKUP_PATHS+=(".zshrc.d")
if [[ ${#BACKUP_PATHS[@]} -gt 0 ]]; then # Build list of paths that actually exist
tar czf "$BACKUP_FILE" -C "$HOME" "${BACKUP_PATHS[@]}" BACKUP_PATHS=()
log " + User configs backed up." [[ -d "$HOME/.config" ]] && BACKUP_PATHS+=(".config")
[[ -f "$HOME/.zshrc" ]] && BACKUP_PATHS+=(".zshrc")
[[ -d "$HOME/.zshrc.d" ]] && BACKUP_PATHS+=(".zshrc.d")
if [[ ${#BACKUP_PATHS[@]} -gt 0 ]]; then
tar czf "$BACKUP_FILE" -C "$HOME" "${BACKUP_PATHS[@]}"
log " + User configs backed up."
fi
# Backup system XDG separately (needs sudo)
if [[ -d /etc/xdg ]]; then
SYSTEM_BACKUP="$HOME/moonarch-backup-system-$(date +%Y%m%d-%H%M%S).tar.gz"
sudo tar czf "$SYSTEM_BACKUP" -C / etc/xdg
sudo chown "$USER:$USER" "$SYSTEM_BACKUP"
log " + System configs backed up: $SYSTEM_BACKUP"
fi
log "Backup complete: $(du -h "$BACKUP_FILE" | cut -f1)"
else
log "Skipping backup."
fi fi
# Backup system XDG separately (needs sudo)
if [[ -d /etc/xdg ]]; then
SYSTEM_BACKUP="$HOME/moonarch-backup-system-$(date +%Y%m%d-%H%M%S).tar.gz"
sudo tar czf "$SYSTEM_BACKUP" -C / etc/xdg
sudo chown "$USER:$USER" "$SYSTEM_BACKUP"
log " + System configs backed up: $SYSTEM_BACKUP"
fi
log "Backup complete: $(du -h "$BACKUP_FILE" | cut -f1)"
# ============================================================ # ============================================================
# Phase 4: Disable Conflicting Display Managers # Phase 4: Disable Conflicting Display Managers
# ============================================================ # ============================================================
@ -356,10 +363,12 @@ log "============================================"
log " Moonarch transform complete!" log " Moonarch transform complete!"
log "============================================" log "============================================"
echo "" echo ""
log "Your previous config is backed up at:" if [[ -n "$BACKUP_FILE" ]]; then
log " $BACKUP_FILE" log "Your previous config is backed up at:"
if [[ -n "${SYSTEM_BACKUP:-}" ]]; then log " $BACKUP_FILE"
log " $SYSTEM_BACKUP" if [[ -n "$SYSTEM_BACKUP" ]]; then
log " $SYSTEM_BACKUP"
fi
fi fi
echo "" echo ""
log "Next steps:" log "Next steps:"