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}
openSUSE Build Service is sponsored by