#! /bin/sh

SYSCONFFILE=/etc/sysconfig/minidlna
CONFFILE=/var/lib/minidlna/minidlna.conf
RESCANFILE=/var/lib/minidlna/rescan.conf
DBDIR=/var/cache/minidlna
LOGDIR=/var/log/minidlna
LOGFILE=$LOGDIR/minidlna.log
TEMPFILE=/var/tmp/media_dir.temp

if [ -f $CONFFILE ]; then
  rm -f $CONFFILE
fi
if [ -f $RESCANFILE ]; then
  rm -f $RESCANFILE
fi
. $SYSCONFFILE
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
echo "db_dir=$DBDIR" >> $CONFFILE
echo "log_dir=$LOGDIR" >> $CONFFILE
if [ ! "$rescan" == "no" ];
  then
    echo 'RESCAN="-R"' >> $RESCANFILE
  else
    echo 'RESCAN=""' >> $RESCANFILE
fi

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` `date +%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` `date +%H:%M:%S`] minidlnaconfig: Network interface $network_interface not found." >> $LOGFILE
