#!/bin/sh -efu
# SPDX-License-Identifier: GPL-2.0-or-later

# shellcheck enable=all disable=SC2250

# shellcheck source=bin/alt-signer-functions.in
. alt-signer-functions

if [ "$#" -ne 2 ]; then
        printf 'Usage: %s <module|PE> <key-nickname>\n' "${0##*/}" >&2
        exit 1
fi

ftype="$1"; shift
nickname="$1"; shift

validate_nickname "$nickname"

suffix=
case "$ftype" in
	PE) ;;
	module) suffix=.ko ;;
	*)
	   echo >&2 'unsupported input file type'
	   exit 1
	   ;;
esac

tmpdir=
cleanup_tmpdir()
{
        [ -z "$tmpdir" ] || rm -rf -- "$tmpdir"
        exit "$@"
}

tmpdir=$(mktemp -dt "${0##*/}.XXXXXXXX")
trap 'cleanup_tmpdir $?' EXIT
trap 'exit 143' HUP INT QUIT PIPE TERM

cat > "$tmpdir/infile$suffix"

pesign-client ${ALT_SIGNER_TOKEN:+-t "$ALT_SIGNER_TOKEN"} -s -c "$nickname" -i "$tmpdir/infile$suffix" -o "$tmpdir"/outfile

cat "$tmpdir"/outfile
