#!/bin/bash
set -euo pipefail

SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "$SCRIPT_DIR"

rh="resource_hacker/ResourceHacker.exe"

if [ ! -f "$rh" ]; then
	echo "win/$rh not found" >&2
	exit 1
fi

if [[ -z "${1:-}" ]]; then
	echo "Usage: $0 firefox_version" >&2
	exit 1
fi
version=$1

for arch in win32 win-x64 win-arm64; do
	if [ $arch = "win32" ]; then
		zip="firefox-$version.en-US.$arch.zip"
	elif [ $arch = "win-x64" ]; then
		zip="firefox-$version.en-US.win64.zip"
	elif [ $arch = "win-arm64" ]; then
		zip="firefox-$version.en-US.win64-aarch64.zip"
	fi
	if [ ! -f "$zip" ]; then
		echo "$zip not found" >&2
		exit 1
	fi
	rm -f firefox-$arch.exe
	unzip -oj $zip firefox/firefox.exe firefox/updater.exe
	mv firefox.exe firefox-$arch.exe
	mv updater.exe updater-$arch.exe

	$rh -open VersionInfo1.rc -save VersionInfo1.res -action compile
	$rh -open VersionInfo1-updater.rc -save VersionInfo1-updater.res -action compile

	config=`cat resource-hacker-config.txt`
	config_file="resource-hacker-config-$arch.txt"
	echo "${config//\{\{ARCH\}\}/$arch}" > $config_file
	$rh -script $config_file
	rm $config_file
	
	config=`cat resource-hacker-config-updater.txt`
	config_file="resource-hacker-config-updater-$arch.txt"
	echo "${config//\{\{ARCH\}\}/$arch}" > $config_file
	$rh -script $config_file
	rm $config_file
	mv updater-$arch-new.exe updater-$arch.exe
	
	rm VersionInfo1.res
	rm VersionInfo1-updater.res
	
	
done

tar -Jcv zotero_win32.exe zotero_win-x64.exe zotero_win-arm64.exe > zotero.exe.tar.xz
tar -Jcv updater-win32.exe updater-win-x64.exe updater-win-arm64.exe > updater.exe.tar.xz

rm firefox-win*.exe updater-win*.exe zotero_win*.exe
