Some syntax errors fixed. Syntax checking added. Release checklist created.
This commit is contained in:
97
tools/setup_validation.sh
Executable file
97
tools/setup_validation.sh
Executable file
@ -0,0 +1,97 @@
|
||||
#!/bin/bash
|
||||
# Fenrir Validation Setup Script
|
||||
#
|
||||
# Sets up the validation tools and pre-commit hooks for Fenrir development.
|
||||
# Run this once after cloning the repository.
|
||||
|
||||
set -e
|
||||
|
||||
# Colors for output
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RED='\033[0;31m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
echo -e "${GREEN}Fenrir Development Environment Setup${NC}"
|
||||
echo "======================================"
|
||||
|
||||
# Check we're in the right directory
|
||||
if [ ! -f "CLAUDE.md" ] || [ ! -d "src/fenrirscreenreader" ]; then
|
||||
echo -e "${RED}Error: Must be run from Fenrir project root directory${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Make validation scripts executable
|
||||
echo -e "\n${YELLOW}1. Making validation scripts executable...${NC}"
|
||||
chmod +x tools/validate_syntax.py
|
||||
chmod +x tools/validate_release.py
|
||||
chmod +x tools/cleanup_cache.py
|
||||
chmod +x tools/pre-commit-hook
|
||||
chmod +x tools/install_validation_hook.sh
|
||||
chmod +x tools/pre-commit-composite
|
||||
echo -e "${GREEN}✓ Scripts are now executable${NC}"
|
||||
|
||||
# Install pre-commit hook
|
||||
echo -e "\n${YELLOW}2. Installing composite pre-commit hook...${NC}"
|
||||
echo -e "${YELLOW}This preserves existing version management functionality.${NC}"
|
||||
|
||||
# Use the safe installation script
|
||||
if ./tools/install_validation_hook.sh; then
|
||||
echo -e "${GREEN}✓ Composite pre-commit hook installed${NC}"
|
||||
else
|
||||
echo -e "${RED}⚠ Hook installation encountered issues${NC}"
|
||||
echo " You can install manually with: ./tools/install_validation_hook.sh"
|
||||
fi
|
||||
|
||||
# Test validation tools
|
||||
echo -e "\n${YELLOW}3. Testing validation tools...${NC}"
|
||||
|
||||
# Test syntax validator
|
||||
if python3 tools/validate_syntax.py --check-only >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Syntax validator working${NC}"
|
||||
else
|
||||
echo -e "${RED}⚠ Syntax validator found issues${NC}"
|
||||
echo " Run: python3 tools/validate_syntax.py --fix"
|
||||
fi
|
||||
|
||||
# Test pre-commit hook
|
||||
if ./tools/pre-commit-hook >/dev/null 2>&1; then
|
||||
echo -e "${GREEN}✓ Pre-commit hook working${NC}"
|
||||
else
|
||||
echo -e "${RED}⚠ Pre-commit hook found issues${NC}"
|
||||
echo " This is normal if there are uncommitted changes"
|
||||
fi
|
||||
|
||||
# Verify dependencies for full validation
|
||||
echo -e "\n${YELLOW}4. Checking validation dependencies...${NC}"
|
||||
missing_deps=()
|
||||
|
||||
if ! command -v python3 >/dev/null 2>&1; then
|
||||
missing_deps+=("python3")
|
||||
fi
|
||||
|
||||
if ! python3 -c "import ast" >/dev/null 2>&1; then
|
||||
missing_deps+=("python3-ast")
|
||||
fi
|
||||
|
||||
if [ ${#missing_deps[@]} -eq 0 ]; then
|
||||
echo -e "${GREEN}✓ All validation dependencies available${NC}"
|
||||
else
|
||||
echo -e "${RED}Missing dependencies: ${missing_deps[*]}${NC}"
|
||||
fi
|
||||
|
||||
# Final instructions
|
||||
echo -e "\n${GREEN}Setup complete!${NC}"
|
||||
echo ""
|
||||
echo "Development workflow:"
|
||||
echo " 1. Make your changes"
|
||||
echo " 2. python3 tools/validate_syntax.py --fix"
|
||||
echo " 3. python3 tools/validate_release.py --quick"
|
||||
echo " 4. git add . && git commit (pre-commit hook runs automatically)"
|
||||
echo ""
|
||||
echo "Before releases:"
|
||||
echo " python3 tools/validate_release.py"
|
||||
echo " cat RELEASE_CHECKLIST.md"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Tip: The pre-commit hook will now run automatically on every commit${NC}"
|
||||
echo -e "${YELLOW} and prevent syntax errors from being committed.${NC}"
|
Reference in New Issue
Block a user