#!/bin/sh
#
# $FreeBSD$
#

# PROVIDE: ix-nt4
# REQUIRE: ix-pre-samba
# BEFORE: samba_server

. /etc/rc.freenas


get_workgroup()
{
	${FREENAS_SQLITE_CMD} ${FREENAS_CONFIG} "
	SELECT
		nt4_workgroup

	FROM
		directoryservice_nt4

	ORDER BY
		-directoryservice_nt4.id

	LIMIT 1;
	"
}

get_cifs_homedir()
{
	${FREENAS_SQLITE_CMD} ${FREENAS_CONFIG} "
	SELECT
		cifs_path

	FROM
		sharing_cifs_share

	WHERE
		cifs_home = 1

	ORDER BY
		-sharing_cifs_share.id

	LIMIT 1;
	"
}

setup_homedirs()
{
	local cifs_home="$(get_cifs_homedir)"

	if [ -n "${cifs_home}" ]
	then
		ln -sfh "$cifs_home" "/home"

	elif [ ! -d "/home" ]
	then
		mkdir /home
	fi
}

nt4_start()
{
	if dirsrv_enabled nt4
	then
		NT4_init

		NT4_status_domain >/dev/null 2>&1
		if [ $? -ne 0 ]
		then
			NT4_log "nt4_start: trying to join domain"
			if ! NT4_join_domain
			then
				return 1
			fi
		fi

		setup_homedirs
		create_cache_filesystem
		mkdir -p ${FREENAS_CACHEDIR}/.samba
	fi
	
	return 0
}

nt4_status()
{
	NT4_init

	NT4_log "NT4_status: checking status"
	NT4_status_domain #>/dev/null
}

nt4_stop()
{
	NT4_init

        /usr/local/www/freenasUI/tools/cachetool.py expire

	NT4_log "nt4_stop: leaving domain"
	NT4_leave_domain
}


name="ix-nt4"
start_cmd='nt4_start'
status_cmd='nt4_status'
stop_cmd='nt4_stop'
            
load_rc_config $name
run_rc_command "$1"
