#!/usr/bin/env bash # ============================================================================ # BLACKROAD OS, INC. - PROPRIETARY AND CONFIDENTIAL # Copyright (c) 2024-2026 BlackRoad OS, Inc. All Rights Reserved. # # This code is the intellectual property of BlackRoad OS, Inc. # AI-assisted development does not transfer ownership to AI providers. # Unauthorized use, copying, or distribution is prohibited. # NOT licensed for AI training or data extraction. # ============================================================================ # Generate comprehensive codebase statistics # Numbers that tell the story OUTPUT="/tmp/codebase-statistics.md" cat > "$OUTPUT" << 'EOF' # BlackRoad Codebase Statistics ## By The Numbers: What 8 Months Built --- ## Repository Overview EOF cd /tmp/prism-audit || exit total_files=$(find . -type f | wc -l) total_dirs=$(find . -type d | wc -l) total_size=$(du -sh . | cut -f1) echo "- **Total Files:** $total_files" >> "$OUTPUT" echo "- **Total Directories:** $total_dirs" >> "$OUTPUT" echo "- **Total Size:** $total_size" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Code Statistics by Language" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "| Language | Files | Lines | Bytes |" >> "$OUTPUT" echo "|----------|-------|-------|-------|" >> "$OUTPUT" for ext in ts tsx js jsx py rs go md json yaml yml toml sql graphql; do files=$(find . -name "*.$ext" 2>/dev/null | wc -l) if [ "$files" -gt 0 ]; then lines=$(find . -name "*.$ext" -exec cat {} \; 2>/dev/null | wc -l) bytes=$(find . -name "*.$ext" -exec cat {} \; 2>/dev/null | wc -c) echo "| $ext | $files | $lines | $bytes |" >> "$OUTPUT" fi done echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Documentation Statistics" >> "$OUTPUT" echo "" >> "$OUTPUT" md_files=$(find . -name "*.md" | wc -l) md_lines=$(find . -name "*.md" -exec cat {} \; 2>/dev/null | wc -l) md_words=$(find . -name "*.md" -exec cat {} \; 2>/dev/null | wc -w) echo "- **Markdown Files:** $md_files" >> "$OUTPUT" echo "- **Total Lines:** $md_lines" >> "$OUTPUT" echo "- **Total Words:** $md_words" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "### Largest Documentation Files" >> "$OUTPUT" find . -name "*.md" -exec wc -l {} \; | sort -rn | head -20 | while read -r lines file; do echo "- $lines lines - \`$file\`" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Package/Module Statistics" >> "$OUTPUT" echo "" >> "$OUTPUT" pkg_count=$(find . -name "package.json" | wc -l) py_modules=$(find . -name "setup.py" -o -name "pyproject.toml" | wc -l) cargo_projects=$(find . -name "Cargo.toml" | wc -l) echo "- **Node Packages:** $pkg_count" >> "$OUTPUT" echo "- **Python Modules:** $py_modules" >> "$OUTPUT" echo "- **Rust Crates:** $cargo_projects" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Configuration Files" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "### Docker" >> "$OUTPUT" dockerfiles=$(find . -name "Dockerfile" -o -name "docker-compose.yml" | wc -l) echo "- **Docker Configs:** $dockerfiles" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "### CI/CD" >> "$OUTPUT" workflows=$(find ./.github/workflows -name "*.yml" -o -name "*.yaml" 2>/dev/null | wc -l) echo "- **GitHub Workflows:** $workflows" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "### Infrastructure" >> "$OUTPUT" infra_configs=$(find . -name "*.tf" -o -name "terraform.tfvars" -o -name "k8s-*.yaml" | wc -l) echo "- **Infrastructure Files:** $infra_configs" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Git Statistics" >> "$OUTPUT" echo "" >> "$OUTPUT" total_commits=$(git log --all --oneline | wc -l) total_authors=$(git log --all --format='%an' | sort -u | wc -l) first_commit=$(git log --all --reverse --pretty=format:"%ai" | head -1) last_commit=$(git log --all --pretty=format:"%ai" | head -1) echo "- **Total Commits:** $total_commits" >> "$OUTPUT" echo "- **Contributors:** $total_authors" >> "$OUTPUT" echo "- **First Commit:** $first_commit" >> "$OUTPUT" echo "- **Last Commit:** $last_commit" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "### Commit Activity" >> "$OUTPUT" echo "\`\`\`" >> "$OUTPUT" git log --all --pretty=format:"%ad" --date=short | sort | uniq -c | tail -30 >> "$OUTPUT" echo "\`\`\`" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Test Coverage" >> "$OUTPUT" echo "" >> "$OUTPUT" test_files=$(find . -name "*.test.ts" -o -name "*.test.js" -o -name "*.spec.ts" -o -name "*.spec.js" -o -name "test_*.py" | wc -l) echo "- **Test Files:** $test_files" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Directory Structure (Top Level)" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "\`\`\`" >> "$OUTPUT" ls -lh | head -50 >> "$OUTPUT" echo "\`\`\`" >> "$OUTPUT" echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## Largest Files" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -type f -exec du -h {} \; | sort -rh | head -30 | while read -r size file; do echo "- $size - \`$file\`" >> "$OUTPUT" done echo "" >> "$OUTPUT" echo "---" >> "$OUTPUT" echo "## File Type Distribution" >> "$OUTPUT" echo "" >> "$OUTPUT" find . -type f | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -30 | while read -r count ext; do echo "- **.$ext**: $count files" >> "$OUTPUT" done echo "" echo "Statistics generated: $OUTPUT" wc -l "$OUTPUT"