#!/bin/bash # # Setup script for workflow template # - Installs pnpm if missing # - Installs dependencies # - Sets up pre-commit hook # set -e echo "==========================================" echo "Workflow Template Setup" echo "==========================================" echo "" # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Step 1: Check/install pnpm echo "Checking for pnpm..." if command -v pnpm &> /dev/null; then echo -e "${GREEN}pnpm found: $(pnpm --version)${NC}" else echo -e "${YELLOW}pnpm not found. Installing...${NC}" # Try corepack first (ships with Node 16+) if command -v corepack &> /dev/null; then echo "Using corepack to enable pnpm..." corepack enable corepack prepare pnpm@latest --activate # Try npm as fallback elif command -v npm &> /dev/null; then echo "Using npm to install pnpm globally..." npm install -g pnpm else echo "" echo -e "${RED}ERROR: Neither pnpm, corepack, nor npm found.${NC}" echo "" echo "Please install Node.js first:" echo " - https://nodejs.org (recommended)" echo " - Or via your system's package manager" echo "" echo "After installing Node.js, re-run this setup:" echo " pnpm run setup" echo "" exit 1 fi echo -e "${GREEN}pnpm installed: $(pnpm --version)${NC}" fi echo "" # Step 2: Install dependencies echo "Installing dependencies..." pnpm install # Step 3: Install pre-commit hook echo "" echo "Setting up pre-commit hook..." # Detect git directory if [ -d ".git" ]; then mkdir -p .git/hooks else echo -e "${YELLOW}Warning: .git directory not found. Run 'git init' first if this is a new repo.${NC}" echo "Creating hooks directory anyway..." mkdir -p .git/hooks fi # Create pre-commit hook cat > .git/hooks/pre-commit << 'EOF' #!/bin/bash # Pre-commit hook for issue-based workflow # Automatically installed by pnpm run setup node .hooks/issue-linter.js EOF chmod +x .git/hooks/pre-commit # Also make setup script executable chmod +x scripts/setup.sh echo -e "${GREEN}Pre-commit hook installed.${NC}" echo "" # Step 4: Summary echo "==========================================" echo -e "${GREEN}Setup complete!${NC}" echo "==========================================" echo "" echo "Next steps:" echo " 1. Read docs/workflow/INDEX.md" echo " 2. Check .issues/INDEX.md for open issues" echo " 3. Start working on an issue or create a new one" echo "" echo "The pre-commit hook will validate issue files before every commit." echo "Code changes without a valid issue file will be rejected." echo ""