#!/bin/sh
#
# $FreeBSD: head/www/madsonic-standalone/files/madsonic.in 423413 2016-10-06 16:04:52Z jlh $
#

# PROVIDE: subsonic
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Configuration settings for madsonic in /etc/rc.conf:
#
# madsonic_enable (bool):
#   Set to "NO" by default.
#   Set it to "YES" to enable madsonic.
#
# madsonic_home (str):
#   Set to "/var/madsonic" by default.
#
# madsonic_host (str):
#   Set to "0.0.0.0" by default.
#   Specify which IP address to listen to.
#
# madsonic_port (int):
#   Set to "4040" by default.
#   Specify which port to listen on for HTTP(S).
#
# madsonic_ssl (bool):
#   Set to "NO" by default.
#   Set it to "YES" to enable SSL.
#
# madsonic_ssl_keystore (str):
#   Optionally set path to custom SSL keystore.
#
# madsonic_ssl_password (str):
#   Optionally set password for custom SSL keystore.
#
# madsonic_context_path (str):
#   Set to "/" by default.
#   Specify the last part of the Subsonic URL, typically "/" or "/madsonic".
#
# madsonic_init_memory (int):
#   Set to "192" by default.
#   Specify the memory initial size (Java heap size) in megabytes.
#
# madsonic_max_memory (int):
#   Set to "384" by default.
#   Specify the memory limit (Java heap size) in megabytes.
#

. /etc/rc.subr

name=madsonic
rcvar=${name}_enable
procname="/usr/local/openjdk8/bin/java"

load_rc_config "${name}"

: ${madsonic_enable:="NO"}
: ${madsonic_user:="subsonic"}
: ${madsonic_group:="subsonic"}
: ${madsonic_home:="/var/madsonic"}
: ${madsonic_host:="0.0.0.0"}
: ${madsonic_port:="4040"}
: ${madsonic_ssl:="NO"}
: ${madsonic_context_path:="/"}
: ${madsonic_init_memory:="192"}
: ${madsonic_max_memory:="384"}

if checkyesno madsonic_ssl; then
	MADSONIC_SSL_FLAGS="-Dmadsonic.httpsPort=${madsonic_port}" && madsonic_port="0"
	if [ ! -z ${madsonic_ssl_keystore} ]; then
		MADSONIC_SSL_FLAGS=${MADSONIC_SSL_FLAGS}" -Dmadsonic.ssl.keystore=${madsonic_ssl_keystore} -Dmadsonic.ssl.password=${madsonic_ssl_password}"
	fi
fi

start_precmd="export LC_CTYPE='en_US.UTF-8'"
madsonic_chdir="/usr/local/share/madsonic-standalone"
command="/usr/sbin/daemon"
command_args="-f ${procname} \
	-Dmadsonic.home=${madsonic_home} \
	-Dmadsonic.host=${madsonic_host} \
	-Dmadsonic.port=${madsonic_port} \
	${MADSONIC_SSL_FLAGS} \
	-Dmadsonic.contextPath=${madsonic_context_path} \
	-Dmadsonic.defaultMusicFolder=${madsonic_home}/artists \
	-Dmadsonic.defaultUploadFolder=${madsonic_home}/incoming \
	-Dmadsonic.defaultPodcastFolder=${madsonic_home}/podcasts \
	-Dmadsonic.defaultPlaylistImportFolder=${madsonic_home}/playlists/import \
	-Dmadsonic.defaultPlaylistExportFolder=${madsonic_home}/playlists/export \
	-Dmadsonic.defaultPlaylistBackupFolder=${madsonic_home}/playlists/backup \
	-Xms${madsonic_init_memory}m \
	-Xmx${madsonic_max_memory}m \
	-Djava.awt.headless=true \
	-jar ${madsonic_chdir}/madsonic-booter.jar"

run_rc_command "$1"
