#!/bin/bash
# -*- coding: utf-8 -*-
# Test file for: process_diff.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 process_diff.sh"
}
# Run tests
main() {
echo "Testing: process_diff.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/process_diff.sh
# --------------------------------------------------------------------------------
# #!/bin/bash
# # -*- coding: utf-8 -*-
# # Timestamp: "2025-11-12 00:06:30 (ywatanabe)"
# # File: ./scripts/shell/modules/process_diff.sh
#
# ORIG_DIR="$(pwd)"
# THIS_DIR="$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)"
# # Save engines directory path BEFORE load_config.sh changes directory
# ENGINES_DIR="${THIS_DIR}/engines"
# LOG_PATH="$THIS_DIR/.$(basename $0).log"
# echo > "$LOG_PATH"
#
# GIT_ROOT="$(git rev-parse --show-toplevel 2>/dev/null)"
#
# GRAY='\033[0;90m'
# GREEN='\033[0;32m'
# YELLOW='\033[0;33m'
# RED='\033[0;31m'
# NC='\033[0m' # No Color
#
# echo_info() { echo -e "${GRAY}INFO: $1${NC}"; }
# log_info() {
# if [ "${SCITEX_LOG_LEVEL:-1}" -ge 2 ]; then
# echo -e " \033[0;90m→ $1\033[0m"
# fi
# }
# echo_success() { echo -e "${GREEN}SUCC: $1${NC}"; }
# echo_warning() { echo -e "${YELLOW}WARN: $1${NC}"; }
# echo_error() { echo -e "${RED}ERRO: $1${NC}"; }
# echo_header() { echo_info "=== $1 ==="; }
# # ---------------------------------------
#
# # Configuration (this changes working directory!)
# source ./config/load_config.sh $SCITEX_WRITER_DOC_TYPE
#
# # Source the 00_shared LaTeX commands module
# source "$(dirname ${BASH_SOURCE[0]})/command_switching.src"
#
# # Logging
# touch "$LOG_PATH" >/dev/null 2>&1
# echo
# log_info "Running $0 ..."
#
#
# function determine_previous() {
# local base_tex=$(ls -v "$SCITEX_WRITER_VERSIONS_DIR"/*_v*base.tex 2>/dev/null | tail -n 1)
# local latest_tex=$(ls -v "$SCITEX_WRITER_VERSIONS_DIR"/*_v[0-9]*.tex 2>/dev/null | tail -n 1)
# local current_tex="$SCITEX_WRITER_COMPILED_TEX"
#
# if [[ -n "$base_tex" ]]; then
# echo "$base_tex"
# elif [[ -n "$latest_tex" ]]; then
# echo "$latest_tex"
# else
# echo "$current_tex"
# fi
# }
#
# function take_diff_tex() {
# local previous=$(determine_previous)
#
# log_info " Creating diff between archive..."
#
# if [ ! -f "$SCITEX_WRITER_COMPILED_TEX" ]; then
# echo_warning " $SCITEX_WRITER_COMPILED_TEX not found."
# return 1
# fi
#
# # Get latexdiff command from 00_shared module
# local latexdiff_cmd=$(get_cmd_latexdiff "$ORIG_DIR")
#
# if [ -z "$latexdiff_cmd" ]; then
# echo_error " latexdiff not found (native, module, or container)"
# return 1
# fi
#
# # echo_info " Using latexdiff command: $latexdiff_cmd"
#
# $latexdiff_cmd \
# --encoding=utf8 \
# --type=CULINECHBAR \
# --disable-citation-markup \
# --append-safecmd="cite,cite,citet" \
# "$previous" "$SCITEX_WRITER_COMPILED_TEX" 2> >(grep -v 'gocryptfs not found' | grep -v 'Wide character in print' >&2) > "$SCITEX_WRITER_DIFF_TEX"
#
# if [ -f "$SCITEX_WRITER_DIFF_TEX" ] && [ -s "$SCITEX_WRITER_DIFF_TEX" ]; then
# echo_success " $SCITEX_WRITER_DIFF_TEX created"
#
# # Add signature with version metadata
# # Extract old version from previous file path (e.g., manuscript_v113.tex -> 113)
# local old_version=$(echo "$previous" | grep -oP '_v\K[0-9]+' || echo "unknown")
#
# # Get new version from version counter
# local new_version="current"
# if [ -f "$SCITEX_WRITER_VERSION_COUNTER_TXT" ]; then
# new_version=$(head -n 1 "$SCITEX_WRITER_VERSION_COUNTER_TXT" | tr -d '[:space:]')
# fi
#
# # Load and apply signature
# if [ -f "./scripts/shell/modules/add_diff_signature.sh" ]; then
# source ./scripts/shell/modules/add_diff_signature.sh
# add_diff_signature "$SCITEX_WRITER_DIFF_TEX" "$old_version" "$new_version"
# fi
#
# return 0
# else
# echo_warn " $SCITEX_WRITER_DIFF_TEX not created or is empty"
# return 1
# fi
# }
#
# compile_diff_tex() {
# log_info " Compiling diff document..."
#
# local tex_file="$SCITEX_WRITER_DIFF_TEX"
#
# # Source engine modules (ENGINES_DIR set at top of script before load_config.sh)
# source "${ENGINES_DIR}/compile_tectonic.sh"
# source "${ENGINES_DIR}/compile_latexmk.sh"
# source "${ENGINES_DIR}/compile_3pass.sh"
#
# # Use the same engine as main compilation (or default to latexmk for diff stability)
# local engine="${SCITEX_WRITER_SELECTED_ENGINE:-latexmk}"
#
# log_info " Using engine: $engine"
#
# # Dispatch to engine-specific implementation
# case "$engine" in
# tectonic)
# compile_with_tectonic "$tex_file"
# ;;
# latexmk)
# compile_with_latexmk "$tex_file"
# ;;
# 3pass)
# compile_with_3pass "$tex_file"
# ;;
# *)
# echo_warning " Unknown engine '$engine', using latexmk"
# compile_with_latexmk "$tex_file"
# ;;
# esac
# }
#
# cleanup() {
# # PDF is generated in LOG_DIR, move to final location
# local pdf_basename=$(basename "$SCITEX_WRITER_DIFF_PDF")
# local pdf_in_logs="${LOG_DIR}/${pdf_basename}"
#
# if [ -f "$pdf_in_logs" ]; then
# # Move PDF from logs/ to final location
# mv "$pdf_in_logs" "$SCITEX_WRITER_DIFF_PDF"
# echo_info " Moved PDF: $pdf_in_logs -> $SCITEX_WRITER_DIFF_PDF"
# fi
#
# if [ -f "$SCITEX_WRITER_DIFF_PDF" ]; then
# local size=$(du -h "$SCITEX_WRITER_DIFF_PDF" | cut -f1)
# echo_success " $SCITEX_WRITER_DIFF_PDF ready (${size})"
# sleep 1
# else
# echo_warn " $SCITEX_WRITER_DIFF_PDF not created"
# fi
# }
#
# main() {
# local start_time=$(date +%s)
#
# if take_diff_tex; then
# compile_diff_tex
# fi
#
# cleanup
# echo_info " Total time: $(($(date +%s) - start_time))s"
# }
#
# main "$@"
#
# # EOF
# --------------------------------------------------------------------------------
# End of Source Code from: /home/ywatanabe/proj/scitex-writer/scripts/shell/modules/process_diff.sh
# --------------------------------------------------------------------------------