#!/bin/bash

if [[ -f "/etc/opt/board.txt" ]]; then . /etc/opt/board.txt; fi
if [[ -f "/boot/broadcom/useraccount.txt" ]]; then . /boot/broadcom/useraccount.txt; fi
DISTRO=`cat /etc/os-release | grep -w NAME | sed 's/NAME=//g' | sed 's/"//g' | sed 's/ GNU\/Linux//g'`

create_user (){
if [[ ! -z "$NAME" ]]; then NAME=`echo $NAME | sed 's/ //g'`; else NAME=`echo ${BOARD} | sed 's/ //g'`; fi
if [[ ! -z "$USERNAME" ]]; then :; else USERNAME="pi"; fi
if [[ ! -z "$PASSWORD" ]]; then :; else PASSWORD="board"; fi
adduser ${USERNAME} --gecos ${NAME} --disabled-password
echo "${USERNAME}:${PASSWORD}" | chpasswd
adduser ${USERNAME} sudo
adduser ${USERNAME} audio
adduser ${USERNAME} dialout
adduser ${USERNAME} video
adduser ${USERNAME} disk
adduser ${USERNAME} plugdev
adduser ${USERNAME} netdev
adduser ${USERNAME} bluetooth
adduser ${USERNAME} input
adduser ${USERNAME} render
adduser ${USERNAME} tty
adduser ${USERNAME} i2c
if [[ `grep -w "gpio" "/etc/group"` ]]; then
	adduser ${USERNAME} gpio
else
	groupadd gpio;
	adduser ${USERNAME} gpio
fi
if [[ `grep -w "spi" "/etc/group"` ]]; then
	adduser ${USERNAME} spi
else
	groupadd spi;
	adduser ${USERNAME} spi
fi
}

create_sudoers(){
rm -f /etc/sudoers.d/010_pi-nopasswd
tee /etc/sudoers.d/010_${USERNAME}-nopasswd <<EOF
${USERNAME} ALL=(ALL) NOPASSWD: ALL
EOF
}

echo -en "${FAMILY}: " | sed -e 's/\(.*\)/\U\1/'
echo -e "${BOARD}" | sed -e 's/\(.*\)/\U\1/'
echo ""
echo -e "Creating a user account for: \e[1;37m${NAME}\e[0m"
create_user
create_sudoers
rm -f /boot/broadcom/useraccount.txt
echo "Finishing ..."
sleep .75

if [[ "$DISTRO" == "Devuan" ]]; then
	update-rc.d useraccount remove > /dev/null 2>&1
else
	systemctl disable useraccount > /dev/null 2>&1
fi
sleep .75
if [[ -d "/home/${USERNAME}" ]]; then
	sleep 1s
	mkdir -p /home/${USERNAME}/.config/mc/
	mv -f /etc/opt/user-ini /home/${USERNAME}/.config/mc/ini
	mv -f /etc/opt/nanorc-user /home/${USERNAME}/.nanorc
	chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}
	rm -f /etc/opt/{nanorc-user,user-ini}
fi
if [[ "$DISTRO" == "Devuan" ]]; then clear -x; fi

exit 0
