#!/bin/bash # Backup script for pulse-monitor project # Creates a backup directory with today's date and copies all relevant files DATE=$(date +%Y%m%d) BACKUP_DIR="backup_${DATE}" # Check if backup already exists if [ -d "$BACKUP_DIR" ]; then echo "Backup directory $BACKUP_DIR already exists." read -p "Overwrite? (y/n) " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Backup cancelled." exit 1 fi rm -rf "$BACKUP_DIR" fi # Create backup directory mkdir -p "$BACKUP_DIR" # Copy relevant files echo "Creating backup in $BACKUP_DIR..." # Go source files cp -v *.go "$BACKUP_DIR/" 2>/dev/null # Markdown documentation cp -v *.md "$BACKUP_DIR/" 2>/dev/null # Configuration files cp -v *.yaml "$BACKUP_DIR/" 2>/dev/null cp -v *.yml "$BACKUP_DIR/" 2>/dev/null # Shell scripts (except this one to avoid recursion issues) for f in *.sh; do if [ "$f" != "backup.sh" ]; then cp -v "$f" "$BACKUP_DIR/" 2>/dev/null fi done # Build script cp -v build.sh "$BACKUP_DIR/" 2>/dev/null # Makefile if exists cp -v Makefile "$BACKUP_DIR/" 2>/dev/null # Go module files cp -v go.mod "$BACKUP_DIR/" 2>/dev/null cp -v go.sum "$BACKUP_DIR/" 2>/dev/null # Training digits directory if [ -d "training_digits" ]; then cp -rv training_digits "$BACKUP_DIR/" 2>/dev/null fi echo "" echo "✓ Backup complete: $BACKUP_DIR" echo "Files backed up:" ls -la "$BACKUP_DIR/"