#!/bin/bash # STUPA PDF API - Setup LaTeX Worktrees # This script sets up the Git worktrees needed for building PDFs set -e # Colors for output RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # Project directories SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" BACKEND_DIR="${PROJECT_ROOT}/backend" # LaTeX directories LATEX_TEMPLATES_DIR="${BACKEND_DIR}/latex-templates" LATEX_QSM_DIR="${BACKEND_DIR}/latex-qsm" LATEX_VSM_DIR="${BACKEND_DIR}/latex-vsm" echo -e "${GREEN}STUPA PDF API - LaTeX Worktree Setup${NC}" echo "=====================================" echo "" # Check if latex-templates submodule is initialized if [ ! -d "${LATEX_TEMPLATES_DIR}" ] || [ ! -f "${LATEX_TEMPLATES_DIR}/.git" ]; then echo -e "${YELLOW}Initializing latex-templates submodule...${NC}" cd "${PROJECT_ROOT}" git submodule update --init --recursive fi # Navigate to latex-templates directory cd "${LATEX_TEMPLATES_DIR}" # Fetch latest branches echo -e "${BLUE}Fetching latest branches...${NC}" git fetch origin # Remove existing worktrees if they exist if [ -d "${LATEX_QSM_DIR}" ]; then echo -e "${YELLOW}Removing existing QSM worktree...${NC}" git worktree remove --force "${LATEX_QSM_DIR}" 2>/dev/null || rm -rf "${LATEX_QSM_DIR}" fi if [ -d "${LATEX_VSM_DIR}" ]; then echo -e "${YELLOW}Removing existing VSM worktree...${NC}" git worktree remove --force "${LATEX_VSM_DIR}" 2>/dev/null || rm -rf "${LATEX_VSM_DIR}" fi # Clean up any stale worktree entries git worktree prune # Create QSM worktree echo -e "${BLUE}Creating QSM worktree...${NC}" git worktree add "${LATEX_QSM_DIR}" origin/v1.2/QSM # Create VSM worktree echo -e "${BLUE}Creating VSM worktree...${NC}" git worktree add "${LATEX_VSM_DIR}" origin/v1.2/VSM # Verify worktrees echo "" echo -e "${GREEN}Verifying worktrees...${NC}" if [ -f "${LATEX_QSM_DIR}/Main.tex" ]; then echo -e "${GREEN}✓ QSM worktree created successfully${NC}" else echo -e "${RED}✗ QSM worktree creation failed${NC}" exit 1 fi if [ -f "${LATEX_VSM_DIR}/Main.tex" ]; then echo -e "${GREEN}✓ VSM worktree created successfully${NC}" else echo -e "${RED}✗ VSM worktree creation failed${NC}" exit 1 fi echo "" echo -e "${GREEN}LaTeX worktrees setup complete!${NC}" echo "" echo "Worktree locations:" echo " QSM: ${LATEX_QSM_DIR}" echo " VSM: ${LATEX_VSM_DIR}" echo "" echo "You can now build the Docker image with:" echo " docker compose build api"