stupa-pdf-api/scripts/setup-latex-worktrees.sh

92 lines
2.5 KiB
Bash
Executable File

#!/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"