website-htmx-rustelo-code/scripts/others/inspect-generated.sh

126 lines
3.9 KiB
Bash
Raw Normal View History

2026-07-10 03:44:13 +01:00
#!/bin/bash
# Development script to inspect build.rs generated files
# This script copies the latest generated files from the build output to a development directory
# for easy inspection and debugging.
set -e
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${BLUE}🔍 Build.rs Generated Files Inspector${NC}"
echo ""
# Find the project root
if [[ ! -f "Cargo.toml" ]]; then
echo -e "${RED}❌ Error: Must be run from project root (where Cargo.toml is located)${NC}"
exit 1
fi
# Development directory paths
SHARED_DEV_DIR="crates/shared/generated"
SHARED_MANIFEST_DIR="crates/shared"
# Generated file names
GENERATED_FILES=(
"generated_content_types.rs"
"generated_routes.rs"
"resource_registry.rs"
"embedded_routes.toml"
)
echo -e "${BLUE}📁 Development directory: ${SHARED_DEV_DIR}${NC}"
echo ""
# Ensure development directory exists
mkdir -p "${SHARED_DEV_DIR}"
# Find the latest build output directory
echo -e "${BLUE}🔍 Finding latest build output...${NC}"
LATEST_SHARED_BUILD=$(find target -name "shared-*" -type d -path "*/build/*" | head -1)
if [[ -z "${LATEST_SHARED_BUILD}" ]]; then
echo -e "${YELLOW}⚠️ No build output found. Running cargo check first...${NC}"
cargo check
echo ""
# Try again
LATEST_SHARED_BUILD=$(find target -name "shared-*" -type d -path "*/build/*" | head -1)
if [[ -z "${LATEST_SHARED_BUILD}" ]]; then
echo -e "${RED}❌ Error: Could not find build output after running cargo check${NC}"
exit 1
fi
fi
BUILD_OUT_DIR="${LATEST_SHARED_BUILD}/out"
echo -e "${GREEN}✅ Found build output: ${BUILD_OUT_DIR}${NC}"
echo ""
# Check if build output directory exists and has generated files
if [[ ! -d "${BUILD_OUT_DIR}" ]]; then
echo -e "${RED}❌ Error: Build output directory does not exist: ${BUILD_OUT_DIR}${NC}"
exit 1
fi
# Copy generated files to development directory
echo -e "${BLUE}📋 Copying generated files to development directory...${NC}"
echo ""
copied_count=0
missing_count=0
for file in "${GENERATED_FILES[@]}"; do
src_file="${BUILD_OUT_DIR}/${file}"
dest_file="${SHARED_DEV_DIR}/${file}"
if [[ -f "${src_file}" ]]; then
cp "${src_file}" "${dest_file}"
size=$(stat -f%z "${dest_file}" 2>/dev/null || stat -c%s "${dest_file}" 2>/dev/null || echo "unknown")
echo -e "${GREEN}${file} (${size} bytes)${NC}"
((copied_count++))
else
echo -e "${YELLOW}⚠️ ${file} (not found)${NC}"
((missing_count++))
fi
done
echo ""
# Show summary
if [[ ${copied_count} -gt 0 ]]; then
echo -e "${GREEN}🎉 Successfully copied ${copied_count} generated files${NC}"
else
echo -e "${RED}❌ No files were copied${NC}"
fi
if [[ ${missing_count} -gt 0 ]]; then
echo -e "${YELLOW}⚠️ ${missing_count} files were not found in build output${NC}"
fi
echo ""
# Show file locations and quick access commands
echo -e "${BLUE}📍 Generated files locations:${NC}"
echo -e " Development: ${PWD}/${SHARED_DEV_DIR}/"
echo -e " Build output: ${PWD}/${BUILD_OUT_DIR}/"
echo ""
echo -e "${BLUE}🔧 Quick access commands:${NC}"
echo -e " View content types: ${YELLOW}cat ${SHARED_DEV_DIR}/generated_content_types.rs${NC}"
echo -e " View routes: ${YELLOW}cat ${SHARED_DEV_DIR}/generated_routes.rs${NC}"
echo -e " View resources: ${YELLOW}cat ${SHARED_DEV_DIR}/resource_registry.rs${NC}"
echo -e " View embedded TOML: ${YELLOW}cat ${SHARED_DEV_DIR}/embedded_routes.toml${NC}"
echo ""
echo -e "${BLUE}💡 Tips:${NC}"
echo -e " - Files are automatically copied during debug builds"
echo -e " - Set ${YELLOW}RUSTELO_DEV_GENERATED=true${NC} to force copying in release builds"
echo -e " - Run ${YELLOW}just inspect-generated${NC} to refresh these files"
echo -e " - See ${YELLOW}${SHARED_DEV_DIR}/README.md${NC} for more information"
echo ""