#!/bin/bash
if [ -f /opt/euro-beta/systools/distr/euro3g_standalone_system ]
then
##  this part should be run only on dedicated system

#cleanup duplicated Web roots..
mv /var/www/html /tmp/html_move
rm -rf /var/www/* 
mv /tmp/html_move /var/www/html

mv /etc/init/xinetd.conf /etc/init/euro3g.conf

cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
cat /etc/mysql/my.cnf.bak | sed 's/default_storage_engine.*InnoDB/default_storage_engine = MyISAM/g' > /etc/mysql/my.cnf
restart mysql
cp -f /opt/euro-beta/nxnode /usr/NX/bin

ln -s /opt/euro-beta/systools/update_spinkey /opt/euro-beta/config_tools/upgrader
ln -s /opt/euro-beta/systools/sync_invoices /opt/euro-beta/eurocron.1min/
ln -s /opt/euro-beta/systools/activate_vps_vpn /opt/euro-beta/eurocron.1min/
ln -s /opt/euro-beta/systools/foodcost_upload /opt/euro-beta/eurocron.1min/
/opt/euro-beta/systools/upgrade_db eurotest
# standalon_system_update is now extracted through debian postinst script
#tar -C / -xzf /opt/euro-beta/standalone_system_update.tgz
# apply updates specific for OS VERSION
OS_DISTR_VER=`lsb_release -rs`
if [ -n "$OS_DISTR_VER" ]
then
  cp -ar /os_release_addon/$OS_DISTR_VER/* /
fi
rm -rf /os_release_addon

tar -C / -xzf /opt/euro-beta/rsync_keys.tgz
if ! grep 'rsync@euro3g.priv' /home/euro3g/.ssh/authorized_keys 
then 
  mkdir /home/euro3g/.ssh
  chmod 700 /home/euro3g/.ssh
  cat /root/.ssh/id_dsa_rsync.pub >> /home/euro3g/.ssh/authorized_keys 
  chmod 644 /home/euro3g/.ssh/authorized_keys
  chown -R euro3g.euro3g /home/euro3g/.ssh
fi
mkdir -p /opt/euro-beta/data_export/invoices
ln -nsf /opt/euro-beta/data_export/invoices /var/www/html/stat
chown -R euro3g.euro3g /opt/euro-beta/data_export
chmod a+rx /opt/euro-beta/data_export/invoices
chmod a+rx /opt/euro-beta/data_export
chown root /opt/euro-beta/start_config
chmod u+s /opt/euro-beta/start_config
chown root /opt/euro-beta/systools/e3g_dtime
chmod u+s /opt/euro-beta/systools/e3g_dtime
cat /etc/network/interfaces | grep -v gateway > /tmp/nework_interfaces_lint
cp -f /tmp/nework_interfaces_lint /etc/network/interfaces
rm -f /tmp/nework_interfaces_lint

OS_MAJOR_VER=`echo $OS_DISTR_VER | cut -d'.' -f 1`
if [ $OS_MAJOR_VER -ge 18 ]
then
  systemctl stop systemd-timesyncd
  systemctl disable systemd-timesyncd
fi

fi
touch /opt/euro-beta/e3g_eula_accepted
rm -f /etc/udev/rules.d/10-asus4110.rules
rm -f /opt/euro-beta/systools/detach_usb_hid
rm -f /opt/euro-beta/nxnode
#rm -f /opt/euro-beta/standalone_system_update.tgz
rm -f /opt/euro-beta/rsync_keys.tgz

cd /root/.config/openbox
patch < /opt/euro-beta/openbox_onyx.patch
rm -f /opt/euro-beta/openbox_onyx.patch
cp /opt/euro-beta/restricted_openbox_menu.xml menu.xml
rm -f /opt/euro-beta/restricted_openbox_menu.xml

cd /etc/default
patch < /opt/euro-beta/grub_backlight.patch
rm -f /opt/euro-beta/grub_backlight.patch

#cp -f /opt/euro-beta/30-do_IRQ.conf /etc/rsyslog.d/30-do_IRQ.conf
rm -f /opt/euro-beta/30-do_IRQ.conf

cd /opt/euro-beta
if [ -f ./systools/e3g_hwconfig.sql ]
then
  ./systools/update_db eurotest ./systools/e3g_hwconfig.sql
  rm -f ./systools/e3g_hwconfig.sql
fi

if [ ! -f /var/log/wtmp ]
then
  touch /var/log/wtmp
  chgrp utmp /var/log/wtmp
  chmod 664 /var/log/wtmp
fi

rm -f ./systools/udpserver
rm -f ./systools/udpserver_ubuntu

chown root.root /etc/cron.d/run_ecr_auto_midnight_closure
chmod 644 /etc/cron.d/run_ecr_auto_midnight_closure

rm -f \
/etc/systemd/system/e3g-udprepeater.service \
/etc/systemd/system/e3g.service.wants/e3g-udprepeater.service \
/etc/systemd/system/e3g.service.wants/e3g-udprepeater.service \
/etc/init/e3g/udprepeater.conf \
/opt/euro-beta/systools/e3g_udp_repeater

if [ -f /opt/euro-beta/eurodb.ini.debinstall ]
then
  cp /opt/euro-beta/eurodb.ini.debinstall /opt/euro-beta/eurodb.ini
  rm -f /opt/euro-beta/eurodb.ini.debinstall > /dev/null 2>&1  
fi

systemctl daemon-reload

mkdir /opt/euro-beta/ext_images/webedit 2>/dev/null
chgrp www-data /opt/euro-beta/ext_images/webedit
chmod 775 /opt/euro-beta/ext_images/webedit

cd /var/www/html/stat
ln -s o r

touch /opt/euro-beta/subsys/eurobackd.disabled

ln -s /opt/euro-beta/systools/rem_gui_wg /opt/euro-beta/eurocron.1min/

/opt/euro-beta/patch_nxnode_setup.sh
rm -f /opt/euro-beta/patch_nxnode_setup.sh

/opt/euro-beta/patch_covid_ifup.sh
rm -f /opt/euro-beta/patch_covid_ifup.sh
/opt/euro-beta/systools/covid_setup init
ln -s /opt/euro-beta/systools/covid_setup /opt/euro-beta/eurocron.1min/

# disable cidmon if not configured
cd /opt/euro-beta
if egrep -q '^ModemPort=/dev/ttyACM0' .qt/spintecrc
then
  touch subsys/cidmon2.disabled
  service e3g/cidmon2 stop
  subsys/e3g_subsystem cidmon2 stop
fi


if ! grep -q autocash /opt/euro-beta/subsys/subsys_list
then
  systemctl daemon-reload
  systemctl enable e3g-autocash
  touch /opt/euro-beta/subsys/autocash.disabled
fi
cp  /opt/euro-beta/subsys/subsys_list_distr  /opt/euro-beta/subsys/subsys_list
rm -f /opt/euro-beta/subsys/subsys_list_distr

tar -C /opt/euro-beta -xzf /opt/euro-beta/systools/distr/old_icons_82.tgz
tar -C /opt/euro-beta -xzf /opt/euro-beta/systools/distr/old_icons_in_png.tgz

# Remote Setup using X2GO because FreeNX doesn't work in non shadow mode on Ubuntu 22.04
useradd -U -m remotesetup
if ! grep -q qLxXxsWk5r8MakYauz3fUXMtGm+Wwo0FimqZ3flvyQ08OOYnQlBO6CdL65v90Xqm /home/remotesetup/.ssh/authorized_keys
then
  mkdir /home/remotesetup/.ssh
  cat e3g_x2go_dsa.pub >> /home/remotesetup/.ssh/authorized_keys
  chown -R remotesetup.remotesetup /home/remotesetup/.ssh
  chmod 700 /home/remotesetup/.ssh
  chmod 644 /home/remotesetup/.ssh/authorized_keys
fi
rm -f e3g_x2go_dsa.pub

if [ $OS_MAJOR_VER -ge 18 ]
then
  if systemctl -q is-enabled ModemManager
  then
    systemctl stop ModemManager
    systemctl disable ModemManager
  fi
else
  if service modemmanager status 2>/dev/null | grep -q running
  then
    service modemmanager stop > /dev/null 2>&1
    echo 'manual' > /etc/init/modemmanager.override
  fi
fi

(
  cd /var/lib/mysql/eurotest
  for i in `ls *.ibd 2>/dev/null`; do
    echo 'alter table`'`basename "$i" .ibd`'` engine=myisam;';
  done | mysql -u euro3g -peuro3g eurotest
)
(
  cd /var/lib/mysql/eurotest
  for i in `ls | grep -v 'db.opt' | sed 's/\..*//' | sort | uniq -c |  awk '/ 1 / {print($2)}'`  
  do 
    rm "$i".frm 
  done
)


rm -rf /var/lib/mysql/eurotest.128
rm -rf /var/lib/mysql/eurotest.xxx
rm -rf /var/lib/mysql/eurotest_tmp

echo "CREATE DATABASE IF NOT EXISTS eurotest_clone;
GRANT ALL ON eurotest_clone.* TO 'euro3g'@'localhost';
GRANT RELOAD, LOCK TABLES ON *.* TO 'euro3g'@'localhost';
FLUSH PRIVILEGES;
" | mysql -peuro2000


cd /opt/euro-beta
for srv in `cat subsys/subsys_list | cut -f1 -d ' '`
do 
  if ! [ -f subsys/${srv}.disabled ]
  then
    subsys/e3g_subsystem $srv restart
  fi
done


BAD_TOV=`md5sum touch_device.override | cut -f1 -d' '`
if [ "$BAD_TOV" == "3f5b6d503b17c214060e4872cb2dfc6a" ]
then
  rm -f touch_device.override
fi


chown euro3g.euro3g /opt/euro-beta/log
chmod 777 /opt/euro-beta/log

if [ $OS_MAJOR_VER -ge 18 ]
then
  systemctl daemon-reload
  systemctl enable e3g-nanea
fi
chown euro3g /opt/euro-beta/nanea -R



