#!/bin/sh
clear

token='7ca7b5799484116eae922b13'

echo 'Creating log file...'
echo 'Starting install.' > displapi_install_log.txt
sudo chown displapi:displapi displapi_install_log.txt

#echo 'changing keyboard layout'
#sudo sed -i 's|XKBLAYOUT=\"gb\"|XKBLAYOUT=\"us\"|' /etc/default/keyboard
#sudo sed -i 's|XKBMODEL=\"pc105\"|XKBMODEL=\"pc104\"|' /etc/default/keyboard

echo 'setting timezone'
sudo timedatectl set-timezone America/Los_Angeles

echo 'Setting locale'
sudo sed -i 's|LANG=en_GB\.UTF-8|LANG=en_US.UTF-8|' /etc/default/locale

echo 'Enabling SSH'
sudo ssh-keygen -A &&
sudo update-rc.d ssh enable &&
sudo invoke-rc.d ssh start &&
STATUS=enabled

echo 'Updating...'
sudo apt-get -y -q update >> displapi_install_log.txt

echo 'Upgrading...'
sudo apt-get -y -q upgrade >> displapi_install_log.txt

echo 'Installing XServer...'
sudo apt-get -y -q install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox >> displapi_install_log.txt

echo 'Installing Chromium...'
sudo apt-get -y -q install --no-install-recommends chromium-browser >> displapi_install_log.txt

echo 'Installing Apache...'
sudo apt-get -y -q install apache2 >> displapi_install_log.txt

echo 'Installing PHP...'
sudo apt-get -y -q install php libapache2-mod-php >> displapi_install_log.txt

echo 'Installing FFMPEG...'
sudo apt-get -y -q install ffmpeg >> displapi_install_log.txt

echo 'Installing webcam...'
sudo apt-get -y -q install fswebcam >> displapi_install_log.txt

echo 'Installing GD for PHP...'
sudo apt-get -y -q install php-gd >> displapi_install_log.txt

echo 'Installing VLC'
sudo apt-get -y -q install vlc >> displapi_install_log.txt

echo 'Intalling dbus'
sudo apt-get -y -q install python3-dbus >> displapi_install_log.txt

echo 'Intalling jq'
sudo apt-get -y -q install jq >> displapi_install_log.txt

echo 'Installing PIP'
sudo apt-get -y -q install python3-pip >> displapi_install_log.txt
#sudo apt-get -y -q install python-pip >> displapi_install_log.txt

echo 'Installing GPIO Library'
pip install RPi.GPIO >> displapi_install_log.txt

echo 'Adding ExFAT support'
sudo apt-get -y -q install exfat-fuse exfat-utils >> displapi_install_log.txt

echo 'Adding FAT32 support'
sudo apt-get -y -q install dosfstools >> displapi_install_log.txt

echo 'Setting Wifi Country'
sudo raspi-config nonint do_wifi_country US >> displapi_install_log.txt

echo 'Set mod rewrite...'
sudo a2enmod rewrite >> displapi_install_log.txt

echo 'Turning off CEC in config.txt'
#sudo echo 'hdmi_ignore_cec=1' >> /boot/config.txt
sudo echo 'hdmi_ignore_cec_init=1' >> /bootfs/config.txt

echo 'Installing CEC Utilities'
sudo apt-get -y -q install cec-utils >> displapi_install_log.txt

echo 'Updating config.txt with the correct video driver so VLC can play videos from the command line'
sudo sed -i 's|vc4-kms-v3d|vc4-fkms-v3d|' /bootfs/config.txt

echo 'Downloading DisplaPi...'
wget -O ./displapi.zip https://download.displapi.com/downloads/latest/DisplaPi.zip
sudo rm -r /var/www/*

echo 'Unzipping...'
sudo unzip ./displapi.zip -d /var/www/

echo 'Create Temp directory...'
mkdir /var/www/Temp

echo 'Create Log directory...'
mkdir /var/www/Logs

echo 'Create Upgrade directory...'
mkdir /var/www/Upgrade

echo 'Setting up reboot script'
sudo chmod +x /var/www/Scripts/reboot.sh

echo 'Setting up ping script'
sudo chmod +x /var/www/Scripts/pinghome.sh

echo 'Setting up wpa_supplicant script'
sudo chmod +x /var/www/Scripts/check_wpa.sh

echo 'Setting up cec script'
sudo chmod +x /var/www/Scripts/hdmion.sh
sudo chmod +x /var/www/Scripts/hdmioff.sh

echo 'Setting permissions...'
sudo chown -R displapi.www-data /var/www
sudo chmod -R g+w /var/www

echo 'Adding displapi user to www-data group'
sudo usermod -a -G  www-data displapi

echo 'Moving upgrade script...'
sudo mv /var/www/Scripts/upgradeDisplapi.sh /home/displapi/
sudo chmod +x /home/displapi/upgradeDisplapi.sh

echo 'Removing MacOS Temp Directory...'
sudo rm -R /var/www/__MACOSX

echo 'Updating VirtualHost...'
sudo cat /var/www/Scripts/virtualhost.conf > /etc/apache2/sites-available/000-default.conf

echo 'Remove directory browsing'
sudo sed -i 's|Options Indexes FollowSymLinks|Options FollowSymLinks|' /etc/apache2/apache2.conf
sudo sed -i 's|Options Indexes FollowSymLinks|Options FollowSymLinks|' /etc/apache2/sites-available/000-default.conf

echo 'Adding to bash profile...'
sudo cat /var/www/Scripts/boot.sh > /home/displapi/.bash_profile
sudo chown displapi:displapi /home/displapi/.bash_profile

echo 'Configuring Openbox...'
sudo cat /var/www/Scripts/autostart.conf > /etc/xdg/openbox/autostart

echo 'Installing cron tab for reboot script, this has to be done twice?'
(sudo crontab -l && echo "* * * * * /var/www/Scripts/reboot.sh >/dev/null 2>&1") | sudo crontab -
(sudo crontab -l && echo "* * * * * /var/www/Scripts/reboot.sh >/dev/null 2>&1") | sudo crontab -
(sudo crontab -l && echo "0 0 * * * /var/www/Scripts/pinghome.sh >/dev/null 2>&1") | sudo crontab -

echo 'Setting auto login'
systemctl set-default multi-user.target
        ln -fs /lib/systemd/system/getty@.service /etc/systemd/system/getty.target.wants/getty@tty1.service
        cat > /etc/systemd/system/getty@tty1.service.d/autologin.conf << EOF
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin $SUDO_USER --noclear %I \$TERM
EOF

#echo 'Setting hostname'
#sudo sed -i 's|raspberrypi|displapi|' /etc/hosts
#sudo sed -i 's|raspberrypi|displapi|' /etc/hostname

echo 'Setting the serial number...'
tmp="$(cat /proc/sys/kernel/random/uuid | cut -c1-8)"
serial="vm-$tmp"
echo "$serial" > /var/www/Settings/serial.txt
myip=$(hostname -I | awk '{print $1}')
echo ${myip} > /var/www/Settings/ip.txt

echo 'Registering device...'
sudo sed -i "s|videokiosk1|$serial|" /var/www/Settings/settings.json
name=$(cat /var/www/Settings/settings.json | jq -r '.name')
mode=$(cat /var/www/Settings/settings.json | jq -r '.mode')
scene=$(cat /var/www/Settings/settings.json | jq -r '.scene')
version=$(</var/www/Settings/version.txt)
curl -d "t=$token&s=$serial&ip=$myip&version=$version&scene=$scene&mode=$mode&name=$name" -X POST https://displapi.com/ping/register.php

echo 'Done!'

sleep 1

echo 'Rebooting'
sleep 10

sudo reboot now