ywatanabe
/
test-5
/
sample_manuscript
/
tests
/
shell
/
modules
/
engines
/
test_compile_latexmk.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Test file for: compile_latexmk.sh
THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(realpath "$THIS_DIR/../..")"
# Test counter
TESTS_RUN=0
TESTS_PASSED=0
TESTS_FAILED=0
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
assert_success() {
local cmd="$1"
local desc="${2:-$cmd}"
((TESTS_RUN++))
if eval "$cmd" > /dev/null 2>&1; then
echo -e "${GREEN}✓${NC} $desc"
((TESTS_PASSED++))
else
echo -e "${RED}✗${NC} $desc"
((TESTS_FAILED++))
fi
}
assert_file_exists() {
local file="$1"
((TESTS_RUN++))
if [ -f "$file" ]; then
echo -e "${GREEN}✓${NC} File exists: $file"
((TESTS_PASSED++))
else
echo -e "${RED}✗${NC} File missing: $file"
((TESTS_FAILED++))
fi
}
# Add your tests here
test_placeholder() {
echo "TODO: Add tests for compile_latexmk.sh"
}
# Run tests
main() {
echo "Testing: compile_latexmk.sh"
echo "========================================"
test_placeholder
echo "========================================"
echo "Results: $TESTS_PASSED/$TESTS_RUN passed"
[ $TESTS_FAILED -gt 0 ] && exit 1
exit 0
}
main "$@"
# --------------------------------------------------------------------------------
# Start of Source Code from: /home/ywatanabe/proj/scitex-writer/scripts/shell/modules/engines/compile_latexmk.sh
# --------------------------------------------------------------------------------
# #!/bin/bash
# # -*- coding: utf-8 -*-
# # Timestamp: "2025-11-11 23:14:00 (ywatanabe)"
# # File: ./scripts/shell/modules/engines/compile_latexmk.sh
# # latexmk compilation engine with BIBINPUTS fix
#
# THIS_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
#
# # Source command switching for command detection
# source "${THIS_DIR}/../command_switching.src"
#
# compile_with_latexmk() {
# local tex_file="$1"
# local pdf_file="${tex_file%.tex}.pdf"
#
# echo_info " Using latexmk engine"
#
# # Get latexmk command
# local latexmk_cmd=$(get_cmd_latexmk)
# if [ -z "$latexmk_cmd" ]; then
# echo_error " latexmk not available"
# return 1
# fi
#
# # Setup paths (use configured LOG_DIR for clean separation)
# local project_root=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
#
# # FIX: Set BIBINPUTS to find bibliography files
# # latexmk runs bibtex from output directory, need to point to project root
# if [ "${SCITEX_WRITER_LATEXMK_SET_BIBINPUTS:-true}" = "true" ]; then
# export BIBINPUTS="${project_root}:"
# echo_info " Set BIBINPUTS=${BIBINPUTS}"
# fi
#
# # Build latexmk options as array for proper quoting
# local -a opts=(
# -pdf
# -bibtex
# -interaction=nonstopmode
# -file-line-error
# "-output-directory=$LOG_DIR"
# "-pdflatex=pdflatex -shell-escape %O %S"
# )
#
# # Quiet mode
# if [ "${SCITEX_WRITER_VERBOSE_LATEXMK:-false}" != "true" ]; then
# opts+=(-quiet)
# fi
#
# # Draft mode (single pass)
# if [ "$SCITEX_WRITER_DRAFT_MODE" = "true" ]; then
# opts+=(-dvi- -ps-)
# echo_info " Draft mode: single pass only"
# fi
#
# # Max passes
# if [ -n "$SCITEX_WRITER_LATEXMK_MAX_PASSES" ]; then
# opts+=("-latexoption=-interaction=nonstopmode")
# fi
#
# # Run compilation
# local start=$(date +%s)
#
# echo_info " Running: latexmk [${#opts[@]} options] $(basename $tex_file)"
#
# # Run latexmk with properly quoted array expansion
# local output=$($latexmk_cmd "${opts[@]}" "$tex_file" 2>&1 | grep -v "gocryptfs not found")
# local exit_code=$?
#
# local end=$(date +%s)
#
# # Check for critical errors
# if echo "$output" | grep -q "Missing bbl file\|failed to resolve\|gave return code"; then
# echo_warning " Compilation completed with warnings (check citations/references)"
# fi
#
# # Check result
# if [ $exit_code -eq 0 ]; then
# echo_success " latexmk compilation: $(($end - $start))s"
# return 0
# else
# echo_error " latexmk compilation failed (exit code: $exit_code)"
#
# # Show output if verbose or on failure
# if [ "$SCITEX_WRITER_VERBOSE_LATEXMK" = "true" ] || [ $exit_code -ne 0 ]; then
# echo "$output" | grep -i "error\|warning" | head -10
# fi
#
# # If in auto mode, signal to try fallback
# if [ "$SCITEX_WRITER_ENGINE" = "auto" ]; then
# return 2 # Special code: try next engine
# else
# return 1 # Fatal error
# fi
# fi
# }
#
# # Export function
# export -f compile_with_latexmk
#
# # EOF
# --------------------------------------------------------------------------------
# End of Source Code from: /home/ywatanabe/proj/scitex-writer/scripts/shell/modules/engines/compile_latexmk.sh
# --------------------------------------------------------------------------------