#!/bin/sh

if [ -z "$SYNOPKG_PKGNAME" ]; then
        PACKAGE_NAME="AudioStation"
else
        PACKAGE_NAME=$SYNOPKG_PKGNAME
fi

PACKAGE_DEST=$SYNOPKG_PKGDEST
PACKAGE_DEST_VOL=$SYNOPKG_PKGDEST_VOL
PKG_STATUS=$SYNOPKG_PKG_STATUS
SERVICETOOL="/usr/syno/bin/servicetool"

AUDIO_PACKAGE_FOLDER="/var/packages/${PACKAGE_NAME}"

AUDIO_CONF_FOLDER="${AUDIO_PACKAGE_FOLDER}/etc"
AUDIO_CONF="${AUDIO_CONF_FOLDER}/audio.conf"
AUDIO_USERS_CONF="${AUDIO_CONF_FOLDER}/audio.users"
AUDIO_USERS_CONF_BAK="${AUDIO_CONF_FOLDER}/audio.users.BAK"

AUDIO_DEF_CONF_FOLDER="${AUDIO_PACKAGE_FOLDER}/target/etc"
DEFAULT_RADIO_FOLDER="${AUDIO_DEF_CONF_FOLDER}/radio"

RADIO_FOLDER="${AUDIO_CONF_FOLDER}/radio"
NEW_RADIO_FOLDER="/usr/syno/etc/radio"

if [ ! -f ${AUDIO_CONF} ]; then
	touch ${AUDIO_CONF}
fi

if [ ! -d ${NEW_RADIO_FOLDER} ]; then
	mkdir ${NEW_RADIO_FOLDER}
fi

if [ ! -d ${AUDIO_CONF_FOLDER}/PlayerConfig ]; then
	mkdir ${AUDIO_CONF_FOLDER}/PlayerConfig
fi

#link radio folder to be compatible with Media Server
if [ ! -L ${RADIO_FOLDER} ]; then
	#move old radio configs if exist
	if [ -d ${RADIO_FOLDER} ]; then
		cp -a ${RADIO_FOLDER}/* ${NEW_RADIO_FOLDER}
		rm -rf ${RADIO_FOLDER}
	fi

	ln -s ${NEW_RADIO_FOLDER} ${RADIO_FOLDER}
fi

#move default radio list to /usr/syno/etc/radio
IFS=$'\n'
for i in `ls -1 ${DEFAULT_RADIO_FOLDER}/*`
do
	RADIO_JSON=`basename $i`
	if [ ! -f ${NEW_RADIO_FOLDER}/${RADIO_JSON} ]; then
		cp -a ${DEFAULT_RADIO_FOLDER}/${RADIO_JSON} ${NEW_RADIO_FOLDER}/${RADIO_JSON}
		#force update radio list when first access
		touch -c -t 199109180000 ${NEW_RADIO_FOLDER}/${RADIO_JSON}
	fi
done
unset IFS

install_default_lyrics_plugin()
{
	LYRICS_PLUGIN_FOLDER="${AUDIO_CONF_FOLDER}/lyricsPlugIn"
	DEFAULT_LYRICS_PLUGIN_FOLDER="${AUDIO_DEF_CONF_FOLDER}/lyricsPlugIn"

	#move default lyrics Plug-In priority list to /var/packages/AudioStation/etc
	if [ ! -d ${LYRICS_PLUGIN_FOLDER} ]; then
		cp -a ${DEFAULT_LYRICS_PLUGIN_FOLDER} ${LYRICS_PLUGIN_FOLDER}
	else
		# always update lyricwiki plugin
		cp -af ${DEFAULT_LYRICS_PLUGIN_FOLDER}/plugins/lyricwiki ${LYRICS_PLUGIN_FOLDER}/plugins/
	fi
}

remove_old_port_config()
{
	if [ -f "/usr/local/etc/services.d/synoaudio_port" ]; then
		# remove port-forwarding config file
		${SERVICETOOL} --remove-configure-file --package synoaudio_port
	fi
}

remove_keys_from_user_conf()
{
	# remove prefer_using_html5 when upgrade from Audio Station 6.1.0
	if [ -f "${AUDIO_USERS_CONF}" ] && [ ! -f "${AUDIO_USERS_CONF_BAK}" ]; then
		/usr/bin/cp -a  "${AUDIO_USERS_CONF}" "${AUDIO_USERS_CONF_BAK}"
		/usr/bin/jq 'del(.[].prefer_using_html5)' "${AUDIO_USERS_CONF_BAK}" > "${AUDIO_USERS_CONF}"
	fi
}

install_default_lyrics_plugin
remove_old_port_config
remove_keys_from_user_conf

# remove index so used in DSM 4.x/5.x
if [ -f "/usr/syno/etc/synoindex/packages/${PACKAGE_NAME}/libaudioindex.so" ];then
	rm  "/usr/syno/etc/synoindex/packages/${PACKAGE_NAME}/libaudioindex.so"
fi

if [ "INSTALL" == "$PKG_STATUS" ]; then
	cmd="/usr/syno/bin/synoindex -R type_music -P MediaIndex > /dev/null 2>&1"

	`$cmd`

	logger -p user.err -t "AudioStation" "Re-index triggered, cmd [$cmd], script [$(basename $0)]"
fi

${AUDIO_PACKAGE_FOLDER}/target/pkgbin/encryptPasswd

# For lower package privilege
chown -LR ${PACKAGE_NAME}:${PACKAGE_NAME} ${AUDIO_CONF_FOLDER}
chown -R ${PACKAGE_NAME}:${PACKAGE_NAME} ${AUDIO_CONF_FOLDER}/{,**}/*
chown -R ${PACKAGE_NAME}:${PACKAGE_NAME} /tmp/AudioStation
chown ${PACKAGE_NAME}:${PACKAGE_NAME} /tmp/playing_admin.pls
chown ${PACKAGE_NAME}:${PACKAGE_NAME} /tmp/audio_station_iphone.user.lock
chown -LR ${PACKAGE_NAME}:${PACKAGE_NAME} /var/services/tmp/audio_upload_itunes

chmod 644 "${AUDIO_USERS_CONF}"
chmod 644 /tmp/playing_admin.pls

chmod 764 /tmp/synoaudiod.sock
chown root:${PACKAGE_NAME} /tmp/synoaudiod.sock

exit 0
