#!/bin/bash
# check all needed files
if [ ! -f "./operSettings.zip" ]; then
	echo -e "Please download ${sysUser} user configuration archive \"operSettings.zip\"\nand expract it to ${sysUser} home directory." 
	exit 1
fi

export sysUser=oper
export progFolder="/home/${sysUser}/client"
export sysGroup=teas

# add system user group
sudo groupadd ${sysGroup}

# add current user to TEAS group
sudo usermod -a -G ${sysGroup} $USER

# enable check filesystem everytime at reboot the device
fsList=$(awk -v fileSys="ext" '{if ( $3 ~ fileSys ) print $1}' /etc/fstab)
for fs in ${fsList}; do
	sudo tune2fs -c 1 $fs
done
sudo sync

# proxy server configuration
bash ./proxy

# install needed packets
bash ./packets

# create system client user
export userGroups="$(awk -F ':' '{if ($1 ~ "ssh") {print $1}}' /etc/group),sudo,tty,dialout,plugdev,audio,video,${sysGroup}"
sudo useradd -m -s /bin/bash -c "Operator account" -g ${sysGroup} -G ${userGroups} ${sysUser}
echo "Enter password for \"${sysUser}\""
sudo passwd ${sysUser}

# expract system user window manager settings
[ ! -d /home/${sysUser} ] && sudo mkdir -p /home/${sysUser}
sudo unzip ./operSettings.zip -d /home/${sysUser}

# add necessary variables to system user profile
echo "export clientDir=${progFolder}" | sudo tee -a /home/${sysUser}/.profile > /dev/null
echo -e "[ -f \"\$HOME/startX.sh\" ] && . \$HOME/startX.sh" | sudo tee -a /home/${sysUser}/.profile > /dev/null
echo 'xterm*font:     *-fixed-*-*-*-20-*' | sudo tee /home/${sysUser}/.Xresources > /dev/null

# install autobrightness service
#bash ./autobrightness

# install zabbix service
#bash ./zabbix-agent

# install NodeJS
bash ./nodejs

# install bluetooh firmware
bash ./bluetooth

# configure WOL service
bash ./wol

# disable DPMS function 
sudo mv ./dpms /etc/X11/xorg.conf.d/10-monitor.conf

# create aliases file
sudo mv ./aliases /etc/bash.aliases

# link aliases
ln -s /etc/bash.aliases $HOME/.bash_aliases
sudo ln -s /etc/bash.aliases /home/${sysUser}/.bash_aliases
sudo ln -s /etc/bash.aliases /root/.bash_aliases

# allow autologin sysUser
sudo mkdir -p /etc/systemd/system/getty@tty1.service.d
echo -e "[Service]\nExecStart=\nExecStart=-/usr/sbin/agetty --autologin ${sysUser} --noclear %I \$TERM" | sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf > /dev/null
sudo systemctl enable --now getty@tty1.service

# install elecrtron browser and setup it
sudo bash ./electron ${progFolder}

# set files owners and permissions
sudo bash -c "chown -R ${sysUser}:${sysGroup} /home/${sysUser}"
sudo bash -c "chmod 755 /home/${sysUser}/*.sh /home/${sysUser}/setResolution"

# set special attributes for chrome-sandbox
sudo bash -c "chown -R root:root ${progFolder}/node_modules/electron/dist/chrome-sandbox"
sudo bash -c "chmod -R 4755 ${progFolder}/node_modules/electron/dist/chrome-sandbox"

# clean APT cache
sudo apt -y autoremove
sudo apt clean
