inou/backup.sh

56 lines
1.8 KiB
Bash
Executable File

#!/bin/bash
# backup.sh - Backup Inou code to Google Drive
# Run from: /home/johan/dev/inou
DATE=$(date +%Y%m%d_%H%M%S)
# Detect environment
if [[ -d "/Volumes/dev/inou" ]]; then
SRC="/Volumes/dev/inou"
BACKUP_DIR=~/Google\ Drive/My\ Drive/Backups/inou/backup_$DATE
elif [[ -d "/home/johan/dev/inou" ]]; then
SRC="/home/johan/dev/inou"
BACKUP_DIR=~/backups/inou/backup_$DATE
else
echo "Cannot find source directory"
exit 1
fi
mkdir -p "$BACKUP_DIR/lib"
mkdir -p "$BACKUP_DIR/convert"
mkdir -p "$BACKUP_DIR/viewer"
mkdir -p "$BACKUP_DIR/mcp-client"
mkdir -p "$BACKUP_DIR/portal"
mkdir -p "$BACKUP_DIR/portal/templates"
mkdir -p "$BACKUP_DIR/portal/lang"
mkdir -p "$BACKUP_DIR/portal/static"
mkdir -p "$BACKUP_DIR/scrape_mychart"
mkdir -p "$BACKUP_DIR/docs"
# Code
cp "$SRC/lib/"*.go "$BACKUP_DIR/lib/" 2>/dev/null
cp "$SRC/convert/"*.go "$BACKUP_DIR/convert/" 2>/dev/null
cp "$SRC/viewer/"*.go "$BACKUP_DIR/viewer/" 2>/dev/null
cp "$SRC/mcp-client/"*.go "$BACKUP_DIR/mcp-client/" 2>/dev/null
cp "$SRC/portal/"*.go "$BACKUP_DIR/portal/" 2>/dev/null
cp "$SRC/portal/templates/"*.tmpl "$BACKUP_DIR/portal/templates/" 2>/dev/null
cp "$SRC/portal/lang/"*.yaml "$BACKUP_DIR/portal/lang/" 2>/dev/null
cp "$SRC/portal/static/"*.css "$BACKUP_DIR/portal/static/" 2>/dev/null
cp "$SRC/scrape_mychart/"*.go "$BACKUP_DIR/scrape_mychart/" 2>/dev/null
# Docs
cp "$SRC/docs/"*.md "$BACKUP_DIR/docs/" 2>/dev/null
# Root files
cp "$SRC/go.mod" "$SRC/go.sum" "$BACKUP_DIR/" 2>/dev/null
cp "$SRC/Makefile" "$BACKUP_DIR/" 2>/dev/null
cp "$SRC/backup.sh" "$BACKUP_DIR/" 2>/dev/null
cp "$SRC/build-mac.sh" "$BACKUP_DIR/" 2>/dev/null
cp "$SRC/README.md" "$SRC/journal.md" "$BACKUP_DIR/" 2>/dev/null
echo "Backed up to: $BACKUP_DIR"
echo ""
echo "Contents:"
find "$BACKUP_DIR" -type f | wc -l | xargs echo "Files:"
du -sh "$BACKUP_DIR" | cut -f1 | xargs echo "Size:"