#!/bin/bash -eu
# SPDX-FileCopyrightText: 2025 Uwe Fechner, Bart van de Lint
# SPDX-License-Identifier: MIT

# This script creates a compressed model file for a specific Julia version.
#
# Usage:
#   ./create_xz.sh          # Uses the default Julia version
#   ./create_xz.sh +1.12    # Uses Julia v1.12

# Ensure the script runs from the project root
if [[ $(basename "$(pwd)") == "bin" ]]; then
    cd ..
fi

# --- 1. Determine Julia Version ---
julia_channel_arg=""
if [[ "${1-}" == \+* ]]; then
    julia_channel_arg="$1"
    julia_major="${1#+}"
else
    julia_major=$(julia --version | cut -d' ' -f3 | cut -d'.' -f1,2)
fi

# --- 2. Define Dynamic Filenames ---
MODEL_FILE_BASE="data/model_${julia_major}_ram_dynamic_3_seg.bin"
MODEL_DEFAULT_FILE="${MODEL_FILE_BASE}.default"
XZ_FILE="${MODEL_DEFAULT_FILE}.xz"

# --- 3. Generate and Compress Model File ---
echo "Creating xz file ${XZ_FILE}..."
rm -f "$MODEL_DEFAULT_FILE" "$XZ_FILE"
./bin/run_julia "$@" -e 'using SymbolicAWEModels; include("test/create_xz_file.jl")'
echo "--> Compressing model file..."
cp "$MODEL_FILE_BASE" "$MODEL_DEFAULT_FILE"
xz "$MODEL_DEFAULT_FILE"
echo "✅ Done creating ${XZ_FILE}!"
