#!/bin/sh
# ==========================================================================
#                ____  _ _   _____   __  ______
#                | __ )(_) |_|_   _|__\ \/ / ___|___  _ ____   __
#                |  _ \| | '_ \| |/ _ \  / |   / _ \| '_ \ \ / /
#                | |_) | | |_) | |  __//  \ |__| (_) | | | \ V /
#                |____/|_|_.__/|_|\___/_/\_\____\___/|_| |_|\_/
#
#                          ---  BibTeX Converter  ---
#                   https://www.nntb.no/~dreibh/bibtexconv/
# ==========================================================================
#
# BibTeX Converter
# Copyright (C) 2010-2025 by Thomas Dreibholz
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Contact: thomas.dreibholz@gmail.com

set -eu

# ====== Handle arguments ===================================================
if [ $# -ne 4 ] ; then
   echo >&2 "Usage: $0 Template_ODT Output_ODT BibTeX_File Export_Script"
   exit 1
fi
TEMPLATE_ODT="$1"
OUTPUT_ODT="$2"
BIBTEX_FILE="$3"
EXPORT_SCRIPT="$4"

# ====== Prepare temporary directory ========================================
TEMP_DIRECTORY="$(mktemp -d)"
trap 'rm -rf -- $TEMP_DIRECTORY' EXIT

# ====== Generate content.xml for ODT file ==================================
bibtexconv "$BIBTEX_FILE" --quiet <"$EXPORT_SCRIPT" >"$TEMP_DIRECTORY/content.xml"

# ====== Generate new ODT from template ODT with generated content.xml ======
cp "$TEMPLATE_ODT" "$TEMP_DIRECTORY/template.odt"
(
  cd "$TEMP_DIRECTORY"
  zip -q template.odt --out output.odt -r content.xml content.xml
)
mv "$TEMP_DIRECTORY/output.odt" "$OUTPUT_ODT"
