#!/bin/bash # scripts/10-backup-files.sh - Backup existing files that would conflict set -euo pipefail # Source utilities SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/utils.sh" backup_files() { local dotfiles_dir="$1" log_info "Checking for file conflicts..." # Files that might conflict with stow local files_to_check=(.bashrc .bash_aliases .inputrc .gitconfig) local backed_up=() for file in "${files_to_check[@]}"; do if [ -f "$HOME/$file" ] && [ ! -L "$HOME/$file" ]; then log_warning "Backing up existing file: $HOME/$file -> $HOME/${file}.bak" mv "$HOME/$file" "$HOME/${file}.bak" backed_up+=("$file") fi done if [ ${#backed_up[@]} -gt 0 ]; then log_info "Backed up ${#backed_up[@]} file(s): ${backed_up[*]}" else log_info "No file conflicts found" fi } # Run if called directly if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then if [ $# -ne 1 ]; then log_error "Usage: $0 " exit 1 fi backup_files "$1" fi