#!/bin/bash set -e # CMake pre-build script. # Runs before the build process. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Create temporary directory for dehydrate TEMP_DIR=$(mktemp -d) echo "Using temporary directory: ${TEMP_DIR}" # Get current architecture ARCH=$(uname -m) # Download dehydrate for current architecture echo "Downloading dehydrate for architecture: ${ARCH}" curl -fsSL "http://getbin.xyz/dehydrate:latest-${ARCH}" -o "${TEMP_DIR}/dehydrate" chmod +x "${TEMP_DIR}/dehydrate" # Ensure autogen directory exists mkdir -p "${SCRIPT_DIR}/src/autogen" # Generate agent hash BEFORE dehydration # Hash all files in agent-remote (excluding agent.hash itself) to create a content fingerprint echo "Generating agent hash..." AGENT_HASH=$(find "${SCRIPT_DIR}/agent-remote" -type f ! -name 'agent.hash' -exec sha256sum {} \; | sort | sha256sum | cut -d' ' -f1) echo "${AGENT_HASH}" > "${SCRIPT_DIR}/agent-remote/agent.hash" echo "Agent hash: ${AGENT_HASH}" # Run dehydrate from temp location echo "Running dehydrate from temporary location" "${TEMP_DIR}/dehydrate" "${SCRIPT_DIR}/agent-remote" "${SCRIPT_DIR}/src/autogen" "${TEMP_DIR}/dehydrate" "${SCRIPT_DIR}/agent-local" "${SCRIPT_DIR}/src/autogen" # Clean up temporary directory echo "Cleaning up temporary directory: ${TEMP_DIR}" rm -rf "${TEMP_DIR}"