#!/bin/bash
set -euf
export EDITOR=vim
echo "!! ARCHLINUX Cruise Control Mining installer !!"
echo "** adding main network profile"
cp /etc/network.d/examples/ethernet-dhcp /etc/network.d/main
echo 'POST_UP="cache=\"\$(cat /etc/resolv.conf)\"; echo \"\$cache\" | sed \"1i nameserver 8.8.8.8\" > /etc/resolv.conf"' >> /etc/network.d/main
echo "** adding worker account"
grep -q worker /etc/passwd || adduser worker
gpasswd -a worker wheel
gpasswd -a worker tty
gpasswd -a worker audio
gpasswd -a worker video
gpasswd -a worker network
gpasswd -a worker power

echo "** adding archlinuxfr to pacman.conf"
grep -q archlinuxfr /etc/pacman.conf || echo "[archlinuxfr]" >> /etc/pacman.conf && echo "Server = http://repo.archlinux.fr/x86_64" >> /etc/pacman.conf 
echo "** installing all the required parts"
pacman --needed --noconfirm -Syu rsync git openssh yajl sudo tmux lm_sensors vim yaourt kernel26-headers beep
echo "** doing some tweaks"
rm /usr/bin/python -f
ln -s /usr/bin/python2 /usr/bin/python
echo "syntax on" > /home/worker/.vimrc
echo "syntax on" > /root/.vimrc
echo "** installing tinc"
[ "`yaourt -Q tinc`" ] || yaourt -S --noconfirm tinc
cache="`cat /etc/sudoers`"
echo "$cache" |
sed 's/.*\%wheel.*/%wheel	ALL=(ALL) NOPASSWD: ALL/1' > /etc/sudoers
echo "** Installing ATI drivers"
[ "`yaourt -Q catalyst-utils`" ] || yaourt -S --noconfirm catalyst-utils
[ "`yaourt -Q catalyst-hook`" ] || yaourt -S --noconfirm catalyst-hook
[ "`yaourt -Q amdstream`" ] || yaourt -S --noconfirm amdstream
echo "** installing X"
pacman --needed -S --noconfirm xorg-server xorg-apps xorg-appres xorg-xinit xautolock xlockmore xorg-fonts xorg-xhost xorg-xauth xterm rxvt-unicode fluxbox slim
echo "** editing slim configuration"
cache="`cat /etc/slim.conf`"
echo "$cache" | sed '
  s/.*default_user.*/default_user	worker/
  s/.*auto_login.*/auto_login	yes/
' > /etc/slim.conf
echo "** Installing mining tools and overclocking stuff"
[ "`yaourt -Q phoenix-miner-svn`" ] || yaourt -S --noconfirm phoenix-miner-svn
echo "!! warning, you might need to adjust the version number of AMDOverdriveCTRL !!"
[ "`yaourt -Q amdoverdrivectrl`" ] || yaourt -S amdoverdrivectrl
echo "** copying bin folder"
cp  -r $(readlink -f `dirname $0`)/ /home/worker
echo "** creating new .Xauthority for worker"
sudo -u worker /home/worker/bin/newkey.sh
mkdir -p /home/worker/.fluxbox
cp /krebs/mining/user/startup.sh /home/worker/startup.sh
chmod a+x /home/worker/startup.sh
cp /krebs/mining/user/startup.sh /home/worker/.fluxbox/startup
chmod a+x /home/worker/.fluxbox/startup
cp /krebs/mining/user/mining.ovdr /home/worker/
chown -R worker:users /home/worker
echo "configuring X"
echo "!! ACTION REQUIRED, write down the first number of your ATI Graphics Adapter."
echo "!! i will open /etc/X11/xorg.conf for you, change the BusID of every Device to the numbers you see here"
echo "!! press enter to continue"
lspci|grep VGA 
read
aticonfig --initial=dual-head
vim /etc/X11/xorg.conf
echo "** creating xinitrc and start x"
echo 'setxkbmap -option terminate:ctrl_alt_bksp' > /home/worker/.xinitrc
echo 'xautolock -corners +-+- -locker "xlock -mode blank"&' >> /home/worker/.xinitrc	
echo '/home/worker/startup.sh &' >> /home/worker/.xinitrc	
echo 'xterm &' >> /home/worker/.xinitrc	
echo 'exec fluxbox' >> /home/worker/.xinitrc	
echo '!! start x with `xinit `'
echo 'add "x:5:respawn:/usr/bin/slim >/dev/null 2>&1" to /etc/inittab to start slim"