#!/bin/bash # -*- coding: utf-8 -*- # Test file for: add_diff_signature.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 add_diff_signature.sh" } # Run tests main() { echo "Testing: add_diff_signature.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/add_diff_signature.sh # -------------------------------------------------------------------------------- # #!/bin/bash # # -*- coding: utf-8 -*- # # Timestamp: "2025-11-12 (ywatanabe)" # # File: ./scripts/shell/modules/add_diff_signature.sh # # Description: Add metadata signature to diff TeX files # # # Logging functions (if not already defined) # if ! command -v echo_info &> /dev/null; then # GRAY='\033[0;90m' # GREEN='\033[0;32m' # YELLOW='\033[0;33m' # RED='\033[0;31m' # NC='\033[0m' # echo_info() { echo -e "${GRAY}INFO: $1${NC}"; } # echo_success() { echo -e "${GREEN}SUCC: $1${NC}"; } # echo_warning() { echo -e "${YELLOW}WARN: $1${NC}"; } # echo_error() { echo -e "${RED}ERRO: $1${NC}"; } # fi # # add_diff_signature() { # local diff_tex_file="$1" # local old_version="$2" # local new_version="$3" # # if [ ! -f "$diff_tex_file" ]; then # echo_warning " Diff TeX file not found: $diff_tex_file" # return 1 # fi # # echo_info " Adding signature to diff document..." # # # Create signature block # local signature=" # %% ============================================================================= # %% Diff Document Metadata (Auto-generated) # %% ============================================================================= # %% Comparison: v${old_version} → v${new_version} # %% Generated: $(date '+%Y-%m-%d %H:%M:%S') # %% User: $(git config user.name 2>/dev/null || echo 'unknown') <$(git config user.email 2>/dev/null || echo 'unknown')> # %% Document: ${SCITEX_WRITER_DOC_TYPE} # %% Git commit: $(git rev-parse --short HEAD 2>/dev/null || echo 'unknown') # %% Git branch: $(git branch --show-current 2>/dev/null || echo 'unknown') # %% ============================================================================= # # " # # # Add signature header at the beginning of the document (after \documentclass) # # This will appear in the PDF as metadata and can be seen in the source # # # Find the first \begin{document} and insert signature before it # local temp_file="${diff_tex_file}.tmp" # awk -v sig="$signature" ' # /\\begin\{document\}/ { # print sig # } # { print } # ' "$diff_tex_file" > "$temp_file" # # mv "$temp_file" "$diff_tex_file" # # # Also add visible signature in the PDF footer (optional) # # Add to preamble before \begin{document} # # Use cat with heredoc to avoid AWK escape sequence issues # local temp_file="${diff_tex_file}.tmp" # # # Find the line number of \begin{document} # local begin_doc_line=$(grep -n '\\begin{document}' "$diff_tex_file" | head -1 | cut -d: -f1) # # if [ -n "$begin_doc_line" ]; then # # Insert signature before \begin{document} # { # head -n $((begin_doc_line - 1)) "$diff_tex_file" # cat << EOF # \\usepackage{fancyhdr} # \\usepackage{lastpage} # # \\fancypagestyle{diffstyle}{ # \\fancyhf{} # \\renewcommand{\\headrulewidth}{0.4pt} # \\renewcommand{\\footrulewidth}{0.4pt} # \\fancyhead[L]{\\small\\textit{Diff: v${old_version} → v${new_version}}} # \\fancyhead[R]{\\small\\textit{${SCITEX_WRITER_DOC_TYPE}}} # \\fancyfoot[L]{\\small Generated: $(date '+%Y-%m-%d %H:%M')} # \\fancyfoot[C]{\\small Page \\thepage\\ of \\pageref{LastPage}} # \\fancyfoot[R]{\\small $(git config user.name 2>/dev/null || echo 'Auto-generated')} # } # # \\AtBeginDocument{\\pagestyle{diffstyle}} # EOF # tail -n +$begin_doc_line "$diff_tex_file" # } > "$temp_file" # # mv "$temp_file" "$diff_tex_file" # fi # # echo_success " Diff signature added (header + footer metadata)" # } # # # Export function for use in other scripts # export -f add_diff_signature # # # EOF # -------------------------------------------------------------------------------- # End of Source Code from: /home/ywatanabe/proj/scitex-writer/scripts/shell/modules/add_diff_signature.sh # --------------------------------------------------------------------------------