#!/bin/sh
[ -n "${IPKG_INSTROOT}" ] && exit 0

LINK_DIR="/usr/local/link"
BACKUP_DIR="$LINK_DIR/backup"

# Only backup if an existing installation is present
if [ -f "$LINK_DIR/link" ] || [ -f "$LINK_DIR/main.py" ]; then
    echo "Backing up existing installation..."

    # Remove old backup
    rm -rf "$BACKUP_DIR"
    mkdir -p "$BACKUP_DIR/app" "$BACKUP_DIR/persist"

    # Backup application files (everything except backup/ and persist/)
    for item in "$LINK_DIR"/*; do
        name="$(basename "$item")"
        [ "$name" = "backup" ] && continue
        [ "$name" = "persist" ] && continue
        cp -a "$item" "$BACKUP_DIR/app/"
    done

    # Backup persist directory
    if [ -d "$LINK_DIR/persist" ]; then
        cp -a "$LINK_DIR/persist/." "$BACKUP_DIR/persist/"
    fi

    # Read version from the existing installation
    OLD_VERSION="unknown"
    OLD_VERSION=$(PYTHONPATH="$LINK_DIR:$LINK_DIR/lib" python3 -c "from version import VERSION; print(VERSION)" 2>/dev/null || echo "unknown")

    # Write backup metadata
    cat > "$BACKUP_DIR/backup_meta.json" << METAEOF
{"version": "$OLD_VERSION", "timestamp": "$(date -u '+%Y-%m-%d %H:%M:%S UTC')"}
METAEOF

    echo "Backup created: version=$OLD_VERSION"
fi

exit 0
