#!/usr/bin/env bash
set -euo pipefail

legacy_archive='../../EmulatorJS/data/cores/gearcoleco-legacy-wasm.data'
regular_archive='../../EmulatorJS/data/cores/gearcoleco-wasm.data'

# Literal case patterns narrow selection; the POSIX [ ] guards enforce case-sensitive equality.
case "${2-}" in
    "$legacy_archive") selected_archive="$legacy_archive" ;;
    "$regular_archive") selected_archive="$regular_archive" ;;
    *) selected_archive='' ;;
esac

if (( $# != 4 )) ||
   [ "$1" != 'a' ] ||
   [[ -z "$selected_archive" ]] ||
   [ "$2" != "$selected_archive" ] ||
   [ "$3" != '../gearcoleco_libretro.wasm' ] ||
   [ "$4" != '../gearcoleco_libretro.js' ]; then
    printf 'refusing unexpected wrapper 7z invocation:' >&2
    printf ' %q' "$@" >&2
    printf '\n' >&2
    exit 64
fi

[[ ! -e "$selected_archive" && ! -L "$selected_archive" ]]

exec /inputs/tools/7zz a -t7z \
    -mx=9 -mmt=off -mtm=off -mta=off -mtc=off \
    "$selected_archive" \
    ../gearcoleco_libretro.wasm \
    ../gearcoleco_libretro.js
