#!/bin/sh

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

. shell-error

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

[ "$#" -eq 2 ] || usage

tarball="$1";shift
tftpdir="${1%/}";shift
destdir="$tftpdir/nfsroot/"

[ -f "$tarball" ] || fatal "tarball is not a file"
grep -qs "^$destdir[[:space:]]" /etc/exports && fatal "destination directory already exported"
[ "${tftpdir#/var/lib/tftpboot}" != "$tftpdir" ] || fatal "tftp directory not under /var/lib/tftpboot"

#prepare data directory
mkdir -p "$destdir"
cd "$destdir"
tar -xpf "$tarball"
cd - >/dev/null 2>/dev/null
printf "%s *(rw,async,no_root_squash,no_subtree_check)" "$destdir" >>/etc/exports
service nfs restart

#prepare tftp directory
mkdir -p "$tftpdir"
cp -a $destdir/isolinux/* "$tftpdir"
sed -r "s,nfsroot=([^[:space:]]+),nfsroot=$destdir," -i "$tftpdir/pxelinux.cfg/default"
killall in.tftpd
