#!/bin/bash
# Copyright (c) 2000-2015 Synology Inc. All rights reserved.

SZD_SDKHOOK="${TmpInstDir}${SynoPluginDir}"
SZD_SYSTEMD_CONF="${TmpInstDir}/usr/lib/systemd/system"

mkdir -p "${TmpInstDir}/usr/sbin"
mkdir -p "${TmpInstDir}/var/lib/nfs"
mkdir -p "${TmpInstDir}/$LibDir"
mkdir -p "${TmpInstDir}/etc/nfs"
mkdir -p "${TmpInstDir}/etc/init"
mkdir -p "${SZD_SYSTEMD_CONF}"
mkdir -m 700 -p "${TmpInstDir}/usr/syno/etc/logcollector/whitelist/"
mkdir -m 700 -p "${TmpInstDir}/usr/syno/bin/logcollector/"
mkdir -m 700 -p "${TmpInstDir}/var/lib/nfs/rpc_pipefs/"
mkdir -m 700 -p "${TmpInstDir}/var/lib/nfs/sm/"
mkdir -m 700 -p "${TmpInstDir}/var/lib/nfs/sm.bak/"
mkdir -m 700 -p "${TmpInstDir}/usr/syno/share/healthcheck"

install -m 644 synology/whitelist "${TmpInstDir}/usr/syno/etc/logcollector/whitelist/nfs-utils"
install -m 700 synology/collector_nfs.sh "${TmpInstDir}/usr/syno/bin/logcollector/collector_nfs.sh"
install -m 644 synology/healthcheck/nfsd.conf "${TmpInstDir}/usr/syno/share/healthcheck/nfsd.conf"

for prog in mountd exportfs nfsd nfsstat showmount statd;
do
	install -c -v -m 755 "utils/${prog}/${prog}" "${TmpInstDir}/usr/sbin/"
	if [ "x$NOSTRIP" != "xNOSTRIP" ]; then
		echo "${STRIP} ${TmpInstDir}/usr/sbin/${prog}"
		${STRIP} "${TmpInstDir}/usr/sbin/${prog}"
	fi
done

install -c -v -m 755 "utils/idmapd/.libs/idmapd" "${TmpInstDir}/usr/sbin/"
if [ "x$NOSTRIP" != "xNOSTRIP" ]; then
	echo "${STRIP} ${TmpInstDir}/usr/sbin/idmapd"
	${STRIP} "${TmpInstDir}/usr/sbin/idmapd"
fi

install -c -v -m 755 "utils/statd/sm-notify" "${TmpInstDir}/usr/sbin"
if [ "x$NOSTRIP" != "xNOSTRIP" ]; then
	echo "${STRIP} ${TmpInstDir}/usr/sbin/sm-notify"
	${STRIP} "${TmpInstDir}/usr/sbin/sm-notify"
fi

install -c -v -m 755 "utils/gssd/.libs/svcgssd" "${TmpInstDir}/usr/sbin"
if [ "x$NOSTRIP" != "xNOSTRIP" ]; then
	echo "${STRIP} ${TmpInstDir}/usr/sbin/svcgssd"
	${STRIP} "${TmpInstDir}/usr/sbin/svcgssd"
fi

#mount is busybox version, we need to install mount.nfs into system
install -c -v -m 755 "utils/mount/mount.nfs" "${TmpInstDir}/usr/sbin"
if [ "x$NOSTRIP" != "xNOSTRIP" ]; then
	echo "${STRIP} ${TmpInstDir}/usr/sbin/mount.nfs"
	${STRIP} "${TmpInstDir}/usr/sbin/mount.nfs"
fi

install -c -v -m 644 "synology/syno_nfs_conf" "${TmpInstDir}/etc/nfs"

install -d "${SZD_SDKHOOK}/dirsvs_join"
install -d "${SZD_SDKHOOK}/dirsvs_leave"
install -m 755 synology/NFSJoinLeaveDirsvs.sh "${SZD_SDKHOOK}"
ln -sf ../NFSJoinLeaveDirsvs.sh "${SZD_SDKHOOK}/dirsvs_join/"
ln -sf ../NFSJoinLeaveDirsvs.sh "${SZD_SDKHOOK}/dirsvs_leave/"

#install libnfsidmap
NFSIDMAP_PATH="support/nfsidmap/"
mkdir -p "${TmpInstDir}/$LibDir/libnfsidmap"

install -c -v -m 755 "$NFSIDMAP_PATH/.libs/libnfsidmap.so.1.0.0" "${TmpInstDir}/$LibDir/"
install -c -v -m 755 "$NFSIDMAP_PATH/.libs/nsswitch.so" "${TmpInstDir}/$LibDir/libnfsidmap"
install -c -v -m 755 "$NFSIDMAP_PATH/.libs/static.so" "${TmpInstDir}/$LibDir/libnfsidmap"
install -c -v -m 644 "$NFSIDMAP_PATH/idmapd.conf" "${TmpInstDir}/etc/"
if [ "x$NOSTRIP" != "xNOSTRIP" ]; then
	echo "${STRIP} ${TmpInstDir}/$LibDir/libnfsidmap.so.1.0.0"
	${STRIP} "${TmpInstDir}/$LibDir/libnfsidmap.so.1.0.0"
	echo "${STRIP} ${TmpInstDir}/$LibDir/libnfsidmap/nsswitch.so"
	${STRIP} "${TmpInstDir}/$LibDir/libnfsidmap/nsswitch.so"
	echo "${STRIP} ${TmpInstDir}/$LibDir/libnfsidmap/static.so"
	${STRIP} "${TmpInstDir}/$LibDir/libnfsidmap/static.so"
fi
cd "$TmpInstDir/$LibDir"
ln -s libnfsidmap.so.1.0.0 libnfsidmap.so.1
ln -s libnfsidmap.so.1.0.0 libnfsidmap.so
cd -

cd synology
make remoteinstall INSTALLDIR="${TmpInstDir}" $SynoInstallLayout
