#!/bin/sh
#
# common/base-files package post installation script
#

DEB_VER=$(cat /etc/debian_version | cut -d . -f 1)

# Remove old sw_hotfix packages
find /doremi/opt/pkgs/softwares -name '*sw_hotfix*' -exec rm -rf "{}" \; > /dev/null 2>&1 

# Remove old files
rm -f  /etc/network/if-up.d/ntpdate
rm -f  /doremi/etc/0/video_max_bitrate
rm -f  /doremi/etc/rc.d/functions
test -L /doremi/etc/cron.d/weekly/cplrmv || rm -f /doremi/etc/cron.d/weekly/cplrmv
test -L /doremi/etc/cron.d/weekly/cplremover || rm -f /doremi/etc/cron.d/weekly/cplremover

# Create dolby symlink
if [ ! -L /dolby ]; then
	ln -s /doremi /dolby
fi

# Create symbolic link file (see ACE #3549)
ln -sf ../init.d/doremi-rc.d               /etc/rc2.d/S99doremi-rc.d

# move usbnet.init from rc.d ro rcS.d to be executed before update (#3580)
rm -f /doremi/etc/rc.d/01_01_usbnet
rm -f /doremi/etc/rcS.d/01_01_usbnet
ln -sf ../init.d/usbnet.init 		   /doremi/etc/rcS.d/00_01_usbnet

ln -sf ../init.d/cleanlog.sh		   /doremi/etc/rcS.d/50_cleanlog

ln -sf ../init.d/bootsequence-check.init   /doremi/etc/rc.d/01_bootsequence-check
ln -sf ../init.d/ntpwrap.init      	   /doremi/etc/rc.d/01_ntpwrap
ln -sf ../init.d/security-module.init	   /doremi/etc/rc.d/01_security-module
ln -sf ../init.d/raidinfo.init		   /doremi/etc/rc.d/10_raidinfo
ln -sf ../init.d/drmsignald.init   	   /doremi/etc/rc.d/10_drmsignald
ln -sf ../init.d/drmplaylistd.init 	   /doremi/etc/rc.d/20_drmplaylistd
ln -sf ../init.d/ingestmgrd.init   	   /doremi/etc/rc.d/20_ingestmgrd
ln -sf ../init.d/ingestd.init      	   /doremi/etc/rc.d/21_ingestd
ln -sf ../init.d/schedulerd.init   	   /doremi/etc/rc.d/30_schedulerd
ln -sf ../init.d/drmwatchd.init            /doremi/etc/rc.d/50_drmwatchd
ln -sf ../init.d/drmdfcd.init      	   /doremi/etc/rc.d/50_drmdfcd
ln -sf ../init.d/drmecnad.init     	   /doremi/etc/rc.d/50_drmecnad
ln -sf ../init.d/drmjniord.init    	   /doremi/etc/rc.d/50_drmjniord
ln -sf ../init.d/drmmcastd.init    	   /doremi/etc/rc.d/50_drmmcastd
ln -sf ../init.d/drmsergtwd.init   	   /doremi/etc/rc.d/50_drmsergtwd
ln -sf ../init.d/drmsrxd.init      	   /doremi/etc/rc.d/50_drmsrxd
ln -sf ../init.d/drmuplogd.init    	   /doremi/etc/rc.d/50_drmuplogd
ln -sf ../init.d/drmnasd.init             /doremi/etc/rc.d/50_drmnasd
ln -sf ../init.d/drmsoapd.init             /doremi/etc/rc.d/50_drmsoapd
ln -sf ../init.d/drmakrd.init              /doremi/etc/rc.d/60_drmakrd
ln -sf ../init.d/check-maintenance.init    /doremi/etc/rc.d/99_check-maintenance
ln -sf ../init.d/check-sensors.init        /doremi/etc/rc.d/99_check-sensors
ln -sf ../init.d/croncheck.init            /doremi/etc/rc.d/99_croncheck
ln -sf ../init.d/kreport.init      	   /doremi/etc/rc.d/99_kreport
ln -sf ../init.d/migrate.init              /doremi/etc/rc.d/99_migrate
ln -sf ../init.d/smproduct_check.init      /doremi/etc/rc.d/99_smproduct_check
ln -sf ../init.d/raidrepair.init           /doremi/etc/rc.d/99_raidrepair
ln -sf ../init.d/odeticsd.init     	   /doremi/etc/hotplug.d/20_odeticsd
ln -sf ../init.d/drmgpiod.init     	   /doremi/etc/hotplug.d/21_drmgpiod
ln -sf ../init.d/drmmblogd.init    	   /doremi/etc/hotplug.d/21_drmmblogd
ln -sf ../init.d/drmccsrvd.init    	   /doremi/etc/hotplug.d/50_drmccsrvd
ln -sf ../init.d/drmauxsyncd.init          /doremi/etc/hotplug.d/50_drmauxsyncd
ln -sf ../init.d/drmsubtitled.init 	   /doremi/etc/hotplug.d/50_drmsubtitled
ln -sf ../init.d/splchased.init            /doremi/etc/hotplug.d/50_splchased
ln -sf ../init.d/clarus-init.init  	   /doremi/etc/hotplug.d/90_clarus-init
ln -sf ../init.d/check-maintenance.init	   /doremi/etc/hotplug.d/99_check-maintenance
ln -sf ../init.d/smproduct_check.init	   /doremi/etc/hotplug.d/99_smproduct_check
ln -sf ../init.d/ntpwrap_hotplug.init	   /doremi/etc/hotplug.d/99_smzntpwrap
ln -sf ../init.d/sync_sm_dlms.init	   /doremi/etc/hotplug.d/99_sync_sm_dlms
ln -sf ../init.d/flmx_devsync.init	   /doremi/etc/hotplug.d/99_zflmx_devsync
ln -sf ../init.d/drm_install_dlms.init	   /doremi/etc/hotplug.d/99_drm_install_dlms
ln -sf ../init.d/auxhttpd.init             /doremi/etc/hotplug.d/99_auxhttpd

ln -sf ../../init.d/cplrmv.init            /doremi/etc/cron.d/weekly/cplrmv
ln -sf ../../init.d/cplremover.init        /doremi/etc/cron.d/weekly/cplremover

ln -sf ../../init.d/ntpwrap.init	   /doremi/etc/cron.d/daily/ntpwrap
ln -sf ../../init.d/migrate.init           /doremi/etc/cron.d/daily/migrate
ln -sf /doremi/sbin/raidinfo.sh            /doremi/etc/cron.d/daily/raidinfo
ln -sf ../../init.d/sync_sm_dlms.init      /doremi/etc/cron.d/daily/sync-sm-dlms

ln -sf ../../init.d/check-sensors.init     /doremi/etc/cron.d/5minutely/check-sensors

# Compat
ln -sf /doremi/etc/init.d/doremi-hotplug.d /etc/init.d/doremi-hotplug.d 
ln -sf /doremi/etc/init.d/doremi-rc.d      /etc/init.d/doremi-rc.d
ln -sf /doremi/etc/init.d/doremi-rcS.d     /etc/init.d/doremi-rcS.d
ln -sf /doremi/etc/init.d/drmfunctions     /etc/init.d/drmfunctions
ln -sf /doremi/etc/init.d/drmldbd.init     /etc/init.d/smd.init

# Support coldplug on all platforms
# (Jira DCPLYR-2152) (Jira DCPLYR-111)
if [ "${DEB_VER}" == "7" ]; then
	insserv /etc/init.d/coldplug
else
	for RC in 2 3 4 5; do
		ln -sf /etc/init.d/coldplug /etc/rc${RC}.d/S19coldplug &> /dev/null
	done
	for RC in 0 1 6; do
		ln -sf /etc/init.d/coldplug /etc/rc${RC}.d/K01coldplug &> /dev/null
	done
fi
rm -f /doremi/sbin/coldplug.sh &> /dev/null

# ACE Task #3669
mkdir -p /etc/udev/rules.d
ln -sf /etc/udev/doremi-raid.rules /etc/udev/rules.d/z10-doremi-raid.rules

#
# Initialize maintenance values
#
for op in DOREMI_MAINTENANCE_PROGRAM; do
	if [ ! -e /doremi/opt/maintenance/$op ]; then
		TIMEZONE=$(date +%z)
		date +%FT%T${TIMEZONE:0:3}:${TIMEZONE:3:2} > /doremi/opt/maintenance/$op
	fi
done

# Start daemon
test -x /etc/init.d/cron && \
	/etc/init.d/cron start > /dev/null 2>&1

# Do not start hddtemp as daemon since it may interfer
# with raid_hotplug.sh script
if [ -e /etc/default/hddtemp ] ; then
        sed -e s/'RUN_DAEMON="true"'/'RUN_DAEMON="false"'/g -i /etc/default/hddtemp
fi

# Fix pre/post upgrade script that does not correctly check
# if rootfs is mount in ro or rw
for file in $( ls /doremi/etc/upgrade/pre.d/ ); do
	sed s/"'(ro)'"/"'(ro[),]'"/ -i /doremi/etc/upgrade/pre.d/"$file"
done
for file in $( ls /doremi/etc/upgrade/post.d/ ); do
	sed s/"'(ro)'"/"'(ro[),]'"/ -i /doremi/etc/upgrade/post.d/"$file"
done

# Update Xorg.conf on new Supermicro motherboard
/usr/sbin/dmidecode | grep -q X10SLX
if [ $? -eq 0 ]; then
	if ! grep -q -i vesa /etc/X11/xorg.conf ; then 
		install -m 0644 -o root -g root -D /tmp/X10SLX/xorg.conf /etc/X11/xorg.conf
	fi
	if ! grep -q -i vesa /etc/X11/xorg.conf.640 ; then
		install -m 0644 -o root -g root -D /tmp/X10SLX/xorg.conf.640 /etc/X11/xorg.conf.640
	fi
	if ! grep -q -i vesa /etc/X11/xorg.conf.800 ; then
		install -m 0644 -o root -g root -D /tmp/X10SLX/xorg.conf.800 /etc/X11/xorg.conf.800
	fi
fi

# Fix /etc/resolv.conf (see ACE #3822)
if [ ! -L /etc/resolv.conf ] ; then
	install -m 0755 -o root -g root -d /var
	if [ -f /etc/resolv.conf ] ; then
		mv /etc/resolv.conf /var/resolv.conf
	fi
	ln -s /var/resolv.conf /etc/resolv.conf
fi

# Fix /etc/logrotate.d/mgetty (see ACE #437)
if [ -f /etc/logrotate.d/mgetty ] ; then
	if grep -q delaycompress /etc/logrotate.d/mgetty ; then
		sed '/delaycompress/d' -i /etc/logrotate.d/mgetty
	fi
	if grep -q "rotate 7" /etc/logrotate.d/mgetty ; then
		sed 's/rotate 7/rotate 5/g' -i /etc/logrotate.d/mgetty
	fi
fi

# Fix /etc/mailname (see ACE #3829)
if ! grep -q localhost.localdomain /etc/mailname ; then
	echo localhost.localdomain > /etc/mailname
fi

# [NP4000] delete video output configuration if too old
if [ -f /doremi/etc/drmoutput.xml ]; then
	if ! grep -q NativeMode /doremi/etc/drmoutput.xml; then
		rm -f /doremi/etc/drmoutput.xml &> /dev/null
	fi
fi

# delete deprecated iolate configuration file (DCPLYR-3470)
IOLATE_XML="/doremi/etc/iolate.xml"
if [ -f ${IOLATE_XML} ]; then
	if grep -q "<Threshold>" ${IOLATE_XML}; then
		rm -f ${IOLATE_XML} &> /dev/null
	fi
fi

# make sure standard Debian periodic raid checks are disabled (Jira DCPLYR-3517)
MDADM_CONF=/etc/default/mdadm
if grep -q "^AUTOCHECK=true" ${MDADM_CONF}; then
	sed -i -e 's@^AUTOCHECK=true@AUTOCHECK=false@' ${MDADM_CONF}
fi

# Create SOAP Certificate folders
mkdir -p /doremi/etc/certs/https/trusted/
mkdir -p /doremi/etc/certs/https/revoked/

# Remove legacy Soap Certificate
rm -f /doremi/etc/certs/mine/cert.soap.crt

# fix adjtime for hwclock
if [ ! -L /etc/adjtime ]
then
  ln -sf /var/etc/adjtime /etc/adjtime
fi

# add a linux user media
# add a special vsftp config for user media
if [ -e /etc/vsftpd.conf ]
then
  if ! id -u media 1>&2 2>/dev/null
  then
    adduser --disabled-password --gecos "" media 1>/dev/null
    echo "media:media" | chpasswd
    if ! grep -q user_config_dir /etc/vsftpd.conf
    then
      echo "#Activate per-user configuration" >> /etc/vsftpd.conf
      echo "user_config_dir=/etc/vsftpd_user_conf" >> /etc/vsftpd.conf
    fi
  fi
fi



