#!/bin/bash
set -euo pipefail
shopt -s nullglob

sign() {
	f="$1"
	base="$2"
	exe="$base/syncthing"
	metadir=".metadata"
	if [ -f "$base/syncthing.exe" ] ; then
		exe="$base/syncthing.exe"
		metadir="metadata"
	fi
	if [ -f "$exe" ] ; then
		echo Signing "$base ($f)"
		rm -rf "$base/$metadir"
		mkdir -p "$base/$metadir"
		( echo "$f"; cat "$exe" ) | stsigtool sign "$PRIVATE_KEY" > "$base/$metadir/release.sig"
	fi
}

for f in syncthing*.tar.gz; do
        case "$f" in
	syncthing-source-*.tar.gz)
		;;
	*)
		base="${f%.tar.gz}"
		tar zxf "$f"
		sign "$f" "$base"
		rm -f "$f"
		tar zcf "$f" "$base"
		rm -rf "$base"
	;;
	esac
done

for f in syncthing*.zip; do
	base="${f%.zip}"
	unzip -q "$f"
	sign "$f" "$base"
	rm -f "$f"
	zip -q -r "$f" "$base"
	rm -rf "$base"
done
