63 lines
1.4 KiB
Bash
Executable File
63 lines
1.4 KiB
Bash
Executable File
#!/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/"
|