#!/bin/sh
umask 077

answers()
{
	echo --
	echo SomeState
	echo SomeCity
	echo SomeOrganization
	echo SomeOrganizationalUnit
	echo localhost.localdomain
	echo root@localhost.localdomain
}

if [ $# -eq 0 ] ; then
	echo >&2 "Usage: ${0##*/} filename [...]"
	exit 1
fi

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

trap 'exit_handler $?' EXIT
trap 'exit 143' HUP INT QUIT PIPE TERM
WORKDIR="$(mktemp -dt "${0##*/}.XXXXXXXXXX")" || exit
PEM1="$WORKDIR/pem1"
PEM2="$WORKDIR/pem2"

for target; do
	answers |
		openssl req -newkey rsa:2048 -keyout "$PEM1" -nodes -x509 -days 365 -out "$PEM2" 2>/dev/null
	cat "$PEM1" >  "$target"
	echo        >> "$target"
	cat "$PEM2" >> "$target"
	rm -f "$PEM1" "$PEM2"
done
