#!/bin/sh

# extract configuration from /etc/sysconfig/nfs-utils and write
# environment to /run/sysconfig/nfs-utils to be used by systemd unit
# files.
# This script expects configuration as used by openSUSE-13.1 and later
#

nfs_config=/etc/sysconfig/nfs
if test -r $nfs_config; then
    . $nfs_config
fi

pipefs=
if [ -n "$RPC_PIPEFS_DIR" -a "$RPC_PIPEFS_DIR" != "/var/lib/nfs/rpc_pipefs" ]; then
    pipefs="-p /var/lib/nfs/rpc_pipefs"
fi

mountdport=
if [ -n "$MOUNTD_PORT" ]; then
    mountdport="-p $MOUNTD_PORT"
fi

case $NFS_GSSD_AVOID_DNS in
    [Nn]*) ignore_dns=-D ;;
    [Yy]*) ignore_dns=   ;;
    *    ) ignore_dns=-D
esac

version_params=
if [ "$NFS3_SERVER_SUPPORT" == "no" ]; then
   version_params="--no-nfs-version 2 --no-nfs-version 3"
fi
if [ "$NFS4_SUPPORT" != "yes" ]; then
   version_params="--no-nfs-version 4"
fi
if [ "$NFS4_SERVER_MINOR_VERSION" != "0" ]; then
   version_params="$VERSION_PARAMS --nfs-version 4 --nfs-version 4.$NFS4_SERVER_MINOR_VERSION"
fi

if [ "$USE_KERNEL_NFSD_NUMBER" -gt 0 ]; then
    threads=$USE_KERNEL_NFSD_NUMBER
else
    threads=3
fi

time_params=
if [ -z "$NFSV4LEASETIME" ] ; then
    # Documentation inconsistency.
    NFSV4LEASETIME=$NFSD_V4_GRACE
fi
if [ -n "$NFSV4LEASETIME" ]; then
    time_params="--grace-time=$NFSV4LEASETIME --lease-time=$NFSV4LEASETIME"
fi

if [ -n "$STATD_PORT" ]; then
    STATD_OPTIONS="$STATD_OPTIONS -p $STATD_PORT"
fi
if [ -n "$STATD_HOSTNAME" ]; then
    STATD_OPTIONS="$STATD_OPTIONS -n $STATD_HOSTNAME"
fi
if [ -n "$LOCKD_TCPPORT" ]; then
    STATD_OPTIONS="$STATD_OPTIONS --nlm-port $LOCKD_TCPPORT"
fi
if [ -n "$LOCKD_UDPPORT" ]; then
    STATD_OPTIONS="$STATD_OPTIONS --nlm-udp-port $LOCKD_UDPPORT"
fi


case $NFS_GSSD_AVOID_DNS in
    [Nn]*) ignore_dns=-D ;;
    [Yy]*) ignore_dns=   ;;
    *    ) ignore_dns=-D
esac

mkdir -p /run/sysconfig
{
echo "RPCIDMAPDARGS=$pipefs"
echo "RPCMOUNTDARGS=$mountdport $MOUNTD_OPTIONS $version_parms"
echo "RPCNFSDARGS=$NFSD_OPTIONS $version_params $time_params $threads"
echo "GSSDARGS=$ignore_dns $GSSD_OPTIONS $pipefs"
echo "SMNOTIFYARGS=$SM_NOTIFY_OPTIONS"
echo "STATDARGS=$STATD_OPTIONS"
echo "SVCGSSDARGS=$SVCGSSD_OPTIONS"
} > /run/sysconfig/nfs-utils
