#!/bin/bash
# HELP: Enter an existing worktree and launch Claude Code
# ARG: name - Name of the worktree to enter

if [ $# -eq 0 ]; then
    echo "Usage: $0 <worktree-name>"
    echo "Example: $0 feature-auth"
    echo ""
    echo "Available worktrees:"
    if git rev-parse --git-dir > /dev/null 2>&1; then
        PROJECT_NAME=$(basename $(git rev-parse --show-toplevel))
        git worktree list | grep "$PROJECT_NAME-" | while IFS= read -r line; do
            path=$(echo "$line" | awk '{print $1}')
            name=$(basename "$path" | sed "s/$PROJECT_NAME-//")
            echo "  $name"
        done
    else
        echo "  Not in a git repository"
    fi
    exit 1
fi

# Ensure we're in a git repository
if ! git rev-parse --git-dir > /dev/null 2>&1; then
    echo "Error: Not in a git repository"
    exit 1
fi

WORKTREE_NAME=$1
PROJECT_DIR=$(git rev-parse --show-toplevel)
PROJECT_NAME=$(basename "$PROJECT_DIR")
WORKTREE_PATH="$(dirname "$PROJECT_DIR")/$PROJECT_NAME-$WORKTREE_NAME"

# Check if worktree exists
if [ ! -d "$WORKTREE_PATH" ]; then
    echo "Error: Worktree directory $WORKTREE_PATH does not exist"
    echo ""
    echo "Available worktrees:"
    git worktree list | grep "$PROJECT_NAME-" | while IFS= read -r line; do
        path=$(echo "$line" | awk '{print $1}')
        name=$(basename "$path" | sed "s/$PROJECT_NAME-//")
        echo "  $name"
    done
    exit 1
fi

echo "Entering worktree: $WORKTREE_NAME"
echo "Path: $WORKTREE_PATH"

# Change to worktree directory
cd "$WORKTREE_PATH"

# Activate virtual environment
if [ -d "venv" ]; then
    echo "Activating virtual environment..."
    source venv/bin/activate
else
    echo "Setting up virtual environment..."
    python -m venv venv
    source venv/bin/activate
    echo "Installing project in editable mode..."
    pip install -e .
    echo "Installing development dependencies..."
    pip install -r requirements-dev.txt
fi

echo "Launching Claude Code in worktree..."
echo -ne "\033]0;CG: $WORKTREE_NAME\007"
export PS1="(CG: $WORKTREE_NAME) \$ "
claude --allowedTools "Edit, Write, Bash, Replace"