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