mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-03-25 09:25:50 +00:00
71 lines
No EOL
1.7 KiB
Bash
Executable file
71 lines
No EOL
1.7 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Script to validate that all documentation files referenced in docs.json exist
|
|
|
|
set -e
|
|
|
|
# Change to the repository root
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "Validating documentation references in docs.json..."
|
|
|
|
# Extract all page references from docs.json
|
|
missing_files=0
|
|
|
|
# Check if jq is installed
|
|
if ! command -v jq &> /dev/null; then
|
|
echo "Error: jq is required but not installed. Install it with: brew install jq"
|
|
exit 1
|
|
fi
|
|
|
|
# Extract all pages from the navigation structure
|
|
pages=$(jq -r '.. | objects | select(has("pages")) | .pages[]?' docs.json 2>/dev/null || true)
|
|
|
|
if [ -z "$pages" ]; then
|
|
echo "No pages found in docs.json"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Checking documentation files..."
|
|
echo
|
|
|
|
while IFS= read -r doc; do
|
|
# Skip empty lines
|
|
[ -z "$doc" ] && continue
|
|
|
|
# Check for .md file
|
|
if [ -f "$doc.md" ]; then
|
|
echo "✓ Found: $doc.md"
|
|
# Check for .mdx file
|
|
elif [ -f "$doc.mdx" ]; then
|
|
echo "✓ Found: $doc.mdx"
|
|
# Check if it's already a full path with extension
|
|
elif [ -f "$doc" ]; then
|
|
echo "✓ Found: $doc"
|
|
# Special case for paths starting with .
|
|
elif [[ "$doc" == ./* ]] && [ -f "$doc" ]; then
|
|
echo "✓ Found: $doc"
|
|
else
|
|
echo "✗ Missing: $doc"
|
|
missing_files=$((missing_files + 1))
|
|
fi
|
|
done <<< "$pages"
|
|
|
|
echo
|
|
echo "Summary:"
|
|
echo "--------"
|
|
total_refs=$(echo "$pages" | wc -l | tr -d ' ')
|
|
found_refs=$((total_refs - missing_files))
|
|
echo "Total references: $total_refs"
|
|
echo "Found: $found_refs"
|
|
echo "Missing: $missing_files"
|
|
|
|
if [ $missing_files -gt 0 ]; then
|
|
echo
|
|
echo "Error: Found $missing_files missing documentation files!"
|
|
exit 1
|
|
else
|
|
echo
|
|
echo "Success: All documentation files exist!"
|
|
exit 0
|
|
fi |