mirror of
https://github.com/utopia-os/utopia-ui.git
synced 2025-12-13 07:46:10 +00:00
- Add pre-PR lint check hooks to prevent CI failures - Create check-lint.sh script for comprehensive linting - Configure hooks in .claude/settings.json - Improve development workflow with automated quality checks
50 lines
1.3 KiB
Bash
Executable File
50 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Claude Code Hook: Pre-PR Lint Check
|
|
# This script runs linting checks on both app and lib before PR operations
|
|
|
|
set -e # Exit on any error
|
|
|
|
echo "🔍 Running lint checks before PR operation..."
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
LINT_FAILED=0
|
|
|
|
# Check if we're in the utopia-map directory
|
|
if [[ ! -f "tsconfig.base.json" ]]; then
|
|
echo -e "${RED}❌ Error: Must be run from utopia-map root directory${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${YELLOW}📋 Checking app linting...${NC}"
|
|
cd app
|
|
if npm run test:lint:eslint; then
|
|
echo -e "${GREEN}✅ App linting passed${NC}"
|
|
else
|
|
echo -e "${RED}❌ App linting failed${NC}"
|
|
LINT_FAILED=1
|
|
fi
|
|
cd ..
|
|
|
|
echo -e "${YELLOW}📋 Checking lib linting...${NC}"
|
|
cd lib
|
|
if npm run test:lint:eslint; then
|
|
echo -e "${GREEN}✅ Lib linting passed${NC}"
|
|
else
|
|
echo -e "${RED}❌ Lib linting failed${NC}"
|
|
LINT_FAILED=1
|
|
fi
|
|
cd ..
|
|
|
|
if [[ $LINT_FAILED -eq 1 ]]; then
|
|
echo -e "${RED}❌ Lint checks failed. Please fix linting errors before creating/updating PR.${NC}"
|
|
echo -e "${YELLOW}💡 Tip: Run 'npm run lintfix' in the failing directory to auto-fix some issues.${NC}"
|
|
exit 1
|
|
else
|
|
echo -e "${GREEN}🎉 All lint checks passed! Ready for PR operation.${NC}"
|
|
fi |