File minidlnaconfig of Package minidlna
#! /bin/sh
if [ -n "${1}" ]
then
# multi instance mode
SYSCONFFILE=/etc/sysconfig/minidlna.d/${1}
CONFFILE=/var/lib/minidlna/minidlna_${1}.conf
RESCANFILE=/var/lib/minidlna/rescan_${1}.conf
DBDIR=/var/cache/minidlna/${1}
LOGDIR=/var/log/minidlna/${1}
if ! [ -d ${DBDIR} ]
then
mkdir -p -m 0755 ${DBDIR}
fi
if ! [ -d ${LOGDIR} ]
then
mkdir -p -m 0755 ${LOGDIR}
fi
UUID="$(uuidgen -r)"
else
# single instance mode
SYSCONFFILE=/etc/sysconfig/minidlna
CONFFILE=/var/lib/minidlna/minidlna.conf
RESCANFILE=/var/lib/minidlna/rescan.conf
DBDIR=/var/cache/minidlna
LOGDIR=/var/log/minidlna
fi
LOGFILE=${LOGDIR}/minidlna.log
TEMPFILE=/var/tmp/media_dir_${$}.temp
# erase previous config files
if [ -f ${CONFFILE} ]
then
rm -f ${CONFFILE}
fi
if [ -f ${RESCANFILE} ]
then
rm -f ${RESCANFILE}
fi
# read sysconfig file
. ${SYSCONFFILE}
# write config files
if [ ! "${port}" == "" ]
then
echo "port=${port}" >> ${CONFFILE}
fi
if [ ! "${network_interface}" == "" ]
then
echo "network_interface=${network_interface}" >> ${CONFFILE}
fi
if [ ! "${user}" == "" ]
then
echo "user=${user}" >> ${CONFFILE}
fi
if [ ! "${media_dir}" == "" ]
then
echo "${media_dir}" > ${TEMPFILE}
sed -i 's/ *| */\n/g' ${TEMPFILE}
while read -r dir
do
echo "media_dir=${dir}" >> ${CONFFILE}
done < ${TEMPFILE}
rm -f ${TEMPFILE}
fi
if [ ! "${merge_media_dirs}" == "" ]
then
echo "merge_media_dirs=${merge_media_dirs}" >> ${CONFFILE}
fi
if [ ! "${friendly_name}" == "" ]
then
echo "friendly_name=${friendly_name}" >> ${CONFFILE}
fi
if [ ! "${log_level}" == "" ]
then
echo "log_level=${log_level}" >> ${CONFFILE}
fi
if [ ! "${album_art_names}" == "" ]
then
echo "album_art_names=${album_art_names}" >> ${CONFFILE}
fi
if [ ! "${inotify}" == "" ]
then
echo "inotify=${inotify}" >> ${CONFFILE}
fi
if [ ! "${enable_tivo}" == "" ]
then
echo "enable_tivo=${enable_tivo}" >> ${CONFFILE}
fi
if [ ! "${strict_dlna}" == "" ]
then
echo "strict_dlna=${strict_dlna}" >> ${CONFFILE}
fi
if [ ! "${presentation_url}" == "" ]
then
echo "presentation_url=http://${presentation_url}:${port}" >> ${CONFFILE}
fi
if [ ! "${notify_interval}" == "" ]
then
echo "notify_interval=${notify_interval}" >> ${CONFFILE}
fi
if [ ! "${serial}" == "" ]
then
echo "serial=${serial}" >> ${CONFFILE}
fi
if [ ! "${model_number}" == "" ]
then
echo "model_number=${model_number}" >> ${CONFFILE}
fi
if [ ! "${minissdpdsocket}" == "" ]
then
echo "minissdpdsocket=${minissdpdsocket}" >> ${CONFFILE}
fi
if [ ! "${root_container}" == "" ]
then
echo "root_container=${root_container}" >> ${CONFFILE}
fi
if [ ! "${force_sort_criteria}" == "" ]
then
echo "force_sort_criteria=${force_sort_criteria}" >> ${CONFFILE}
fi
if [ ! "${max_connections}" == "0" ]
then
echo "max_connections=${max_connections}" >> ${CONFFILE}
fi
if [ ! "${wide_links}" == "" ]
then
echo "wide_links=${wide_links}" >> ${CONFFILE}
fi
if [ ! "${UUID}" == "" ]
then
echo "uuid=${UUID}" >> ${CONFFILE}
fi
echo "db_dir=${DBDIR}" >> ${CONFFILE}
echo "log_dir=${LOGDIR}" >> ${CONFFILE}
if [ ! "${rescan}" == "no" ];
then
echo 'RESCAN="-R"' >> ${RESCANFILE}
else
echo 'RESCAN=""' >> ${RESCANFILE}
fi
# check interface
MAXTIME=20
while [ ${MAXTIME} -gt 0 ]
do
CHECKINTERFACE=$(ifconfig ${network_interface} 2> /dev/null | egrep -c '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}');
if [ ${CHECKINTERFACE} -ne 0 ];
then
echo "[$(date +"%Y/%m/%d %H:%M:%S")] minidlnaconfig: Configured network interface ${network_interface} found." >> ${LOGFILE}
exit 0
else
let MAXTIME=${MAXTIME-}1
sleep 1
fi;
done
echo "[$(date +"%Y/%m/%d %H:%M:%S")] minidlnaconfig: Network interface ${network_interface} not found." >> ${LOGFILE}