#!/bin/sh

PROG="${0##*/}"

. shell-error

exit_handler()
{
    local rc=$?
    trap - EXIT

    if [ -d "$TEMPDIR" ];then
	make -C "$TEMPDIR" distclean
	rm -rf "$TEMPDIR"
    fi

    rm -rf "$LOCKDIR"
    exit $rc
}

usage()
{
    printf 'Usage: %s <template-dir>\n' "$PROG"
    exit 0
}

[ "$#" -eq 1 ] || usage
[ -d "$1" ] || usage

[ "$UID" -ne 0 ] || exec su -s /bin/sh -l _mknfsroot -c "/usr/sbin/mknfsroot $1"

TMPDIR="/var/lib/mknfsroot"
export TMPDIR

LOCKDIR="$HOME/mknfsroot.lock"
mkdir "$LOCKDIR" || fatal "already run"

trap exit_handler HUP INT QUIT TERM EXIT

TEMPDIR="$(mktemp -d -t mknfsroot.XXXXXX)"

mkdir -p -- "$TEMPDIR/Metadata/Metadata"

#join profile with metadata
cp -a /etc/mknfsroot/template/* $TEMPDIR
cp -a $1/* "$TEMPDIR/Metadata/Metadata"

#run profile
make -C "$TEMPDIR" all
