#!/bin/bash
# -*- coding: utf-8 -*-
# Test file for: merge_bibliographies.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 merge_bibliographies.sh"
}
# Run tests
main() {
echo "Testing: merge_bibliographies.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/merge_bibliographies.sh
# --------------------------------------------------------------------------------
# #!/bin/bash
# # -*- coding: utf-8 -*-
# # Timestamp: "2025-11-10 00:00:00 (ywatanabe)"
# # File: ./scripts/shell/modules/merge_bibliographies.sh
#
# # ============================================================================
# # Merge Multiple Bibliography Files
# # ============================================================================
# # This script checks if multiple .bib files exist in 00_shared/bib_files/
# # and merges them into a single bibliography.bib file with deduplication.
# #
# # Features:
# # - Smart deduplication by DOI and title+year
# # - Hash-based caching (skips merge if files unchanged)
# # - Automatic during compilation
# #
# # Usage:
# # source ./scripts/shell/modules/merge_bibliographies.sh
# # ============================================================================
#
# BIB_DIR="./00_shared/bib_files"
# BIB_OUTPUT="bibliography.bib"
# MERGE_SCRIPT="./scripts/python/merge_bibliographies.py"
#
# # Count .bib files excluding the output file
# bib_file_count=$(find "$BIB_DIR" -maxdepth 1 -name "*.bib" ! -name "$BIB_OUTPUT" -type f 2>/dev/null | wc -l)
#
# if [ "$bib_file_count" -gt 0 ]; then
# # Multiple .bib files exist - merge them
# if [ -f "$MERGE_SCRIPT" ]; then
# python3 "$MERGE_SCRIPT" "$BIB_DIR" -o "$BIB_OUTPUT" -q
# else
# echo_warning "Multiple .bib files found but merge script missing: $MERGE_SCRIPT"
# echo_warning "Skipping bibliography merge"
# fi
# elif [ "$bib_file_count" -eq 0 ]; then
# # No separate .bib files, check if main bibliography.bib exists
# if [ ! -f "$BIB_DIR/$BIB_OUTPUT" ]; then
# echo_warning "No bibliography files found in $BIB_DIR"
# fi
# fi
#
# # EOF
# --------------------------------------------------------------------------------
# End of Source Code from: /home/ywatanabe/proj/scitex-writer/scripts/shell/modules/merge_bibliographies.sh
# --------------------------------------------------------------------------------