#!/bin/bash # Load shared libraries SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$SCRIPT_DIR/../../lib/init.sh" # Collect code metrics set -e METRICS_FILE="docs/metrics-data.json" OUTPUT_FILE="docs/metrics-reports/code-$(date +%Y-%m-%d).json" echo "📊 Collecting Code Metrics..." echo "" mkdir -p docs/metrics-reports # Initialize metrics object cat > "$OUTPUT_FILE" << 'EOF' { "date": "", "code": { "sharedPackages": { "current": 7, "target": 10, "percentage": 70 }, "duplicateCode": { "baseline": null, "current": null, "reduction": null, "target": 50 }, "projectsUsingPackages": { "totalProjects": null, "projectsUsingPackages": null, "percentage": null, "target": 80 } } } EOF # Update date if command -v jq &> /dev/null; then jq ".date = \"$(date -Iseconds)\"" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp" mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE" # Calculate shared packages percentage CURRENT=$(jq -r '.code.sharedPackages.current' "$OUTPUT_FILE") TARGET=$(jq -r '.code.sharedPackages.target' "$OUTPUT_FILE") PERCENTAGE=$(echo "scale=2; ($CURRENT / $TARGET) * 100" | bc) jq ".code.sharedPackages.percentage = $PERCENTAGE" "$OUTPUT_FILE" > "$OUTPUT_FILE.tmp" mv "$OUTPUT_FILE.tmp" "$OUTPUT_FILE" fi echo "📝 Code metrics template created: $OUTPUT_FILE" echo "" echo "💡 To collect metrics:" echo " 1. Count shared packages (current: 7)" echo " 2. Run code duplication analysis" echo " 3. Survey projects using shared packages" echo " 4. Update values in $OUTPUT_FILE" echo " 5. Run: ./scripts/update-metrics.sh code"