load-context.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # Example SessionStart hook for loading project context
  3. # This script detects project type and sets environment variables
  4. set -euo pipefail
  5. # Navigate to project directory
  6. cd "$CLAUDE_PROJECT_DIR" || exit 1
  7. echo "Loading project context..."
  8. # Detect project type and set environment
  9. if [ -f "package.json" ]; then
  10. echo "📦 Node.js project detected"
  11. echo "export PROJECT_TYPE=nodejs" >> "$CLAUDE_ENV_FILE"
  12. # Check if TypeScript
  13. if [ -f "tsconfig.json" ]; then
  14. echo "export USES_TYPESCRIPT=true" >> "$CLAUDE_ENV_FILE"
  15. fi
  16. elif [ -f "Cargo.toml" ]; then
  17. echo "🦀 Rust project detected"
  18. echo "export PROJECT_TYPE=rust" >> "$CLAUDE_ENV_FILE"
  19. elif [ -f "go.mod" ]; then
  20. echo "🐹 Go project detected"
  21. echo "export PROJECT_TYPE=go" >> "$CLAUDE_ENV_FILE"
  22. elif [ -f "pyproject.toml" ] || [ -f "setup.py" ]; then
  23. echo "🐍 Python project detected"
  24. echo "export PROJECT_TYPE=python" >> "$CLAUDE_ENV_FILE"
  25. elif [ -f "pom.xml" ]; then
  26. echo "☕ Java (Maven) project detected"
  27. echo "export PROJECT_TYPE=java" >> "$CLAUDE_ENV_FILE"
  28. echo "export BUILD_SYSTEM=maven" >> "$CLAUDE_ENV_FILE"
  29. elif [ -f "build.gradle" ] || [ -f "build.gradle.kts" ]; then
  30. echo "☕ Java/Kotlin (Gradle) project detected"
  31. echo "export PROJECT_TYPE=java" >> "$CLAUDE_ENV_FILE"
  32. echo "export BUILD_SYSTEM=gradle" >> "$CLAUDE_ENV_FILE"
  33. else
  34. echo "❓ Unknown project type"
  35. echo "export PROJECT_TYPE=unknown" >> "$CLAUDE_ENV_FILE"
  36. fi
  37. # Check for CI configuration
  38. if [ -f ".github/workflows" ] || [ -f ".gitlab-ci.yml" ] || [ -f ".circleci/config.yml" ]; then
  39. echo "export HAS_CI=true" >> "$CLAUDE_ENV_FILE"
  40. fi
  41. echo "Project context loaded successfully"
  42. exit 0