#!/bin/bash

declare -A lab_ids=(
  [luis.bellido]=4
  [david.fernandez]=5
  [ignacio.soto]=6
  [c.lentisco]=7
  [a.maizi]=8
  [a.shieh]=9
  [alex.oliveiradelira]=10
  [alicia.gomez]=11
  [fitsum.gebru]=12
  [hammad.ansari]=13
  [mirza.baidya]=14
  [mohd.suhail]=15
  [navaid.mohsin]=16
  [saud.syed]=17
  [szilvia.palasti]=18
  [trongtin.tran]=19
)

if [ $# -eq 0 ]; then
  echo "No arguments provided. Exiting..."
  exit 1
fi

uLogin="$1"

if [[ ! -v lab_ids[$uLogin] ]]; then
  echo "No assigned lab found for '$uLogin'. Exiting..."
  exit 1
fi

lab_id=${lab_ids[$uLogin]}

echo "Lab found for '$uLogin': $lab_id"

echo "--"
echo "-- Installing IP network lab..."
echo "--"
START_TIME=$SECONDS

export DEBIAN_FRONTEND=noninteractive
echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections

sudo apt-get update
sudo apt-get -y install \
  bash-completion bridge-utils curl eog expect genisoimage gnome-terminal \
  graphviz libappconfig-perl libdbi-perl liberror-perl libexception-class-perl \
  libfile-homedir-perl libio-pty-perl libmath-round-perl libnetaddr-ip-perl \
  libnet-ip-perl libnet-ipv6addr-perl libnet-pcap-perl libnet-telnet-perl \
  libreadonly-perl libswitch-perl libsys-virt-perl libterm-readline-perl-perl \
  libxml-checker-perl libxml-dom-perl libxml-libxml-perl \
  libxml-parser-perl libxml-tidy-perl lxc lxc-templates net-tools \
  openvswitch-switch picocom pv screen tree uml-utilities virt-manager \
  virt-viewer vlan w3m wmctrl xdotool xfce4-terminal xterm lsof \
  libvirt-clients wireshark yad

mkdir /tmp/vnx-update
cd /tmp/vnx-update
rm -rf /tmp/vnx-update/vnx-*
wget --no-check-certificate http://vnx.dit.upm.es/vnx/vnx-latest.tgz
tar xfvz vnx-latest.tgz
cd vnx-*-*
sudo ./install_vnx

cd /tmp
sudo vnx_download_rootfs -r vnx_rootfs_lxc_ubuntu64-20.04-v025-vnxlab.tgz -l -y
sudo rm vnx_rootfs_lxc_ubuntu64-20.04-v025-vnxlab.tgz
sudo ln -s /tmp/vnx_rootfs_lxc_ubuntu64-20.04-v025-vnxlab /usr/share/vnx/filesystems/rootfs_lxc64-rdor

sudo mv /usr/share/vnx/etc/vnx.conf.sample /etc/vnx.conf
sudo sed -i 's/lxc_console_cmd=lxc-console/lxc_console_cmd=lxc-attach/' /etc/vnx.conf

echo "export XAUTHORITY=/home/upm/.Xauthority" >> ~/.bashrc
xhost +SI:localuser:root

cd $HOME/Escritorio/
wget --no-check-certificate https://idefix.dit.upm.es/download/rdor/ip/rdor-t1-$lab_id.tar
tar xvf rdor-t1-$lab_id.tar --warning=no-unknown-keyword
cd rdor-t1-$lab_id
./install-t1
sed -i 's/^Icon=.*/Icon=notification-audio-play/' Arrancar-T1.desktop
sed -i 's/^Icon=.*/Icon=notification-audio-stop/' Parar-T1.desktop
cd ..
rm -f rdor-t1-$lab_id.tar

#cd rdor-te2-caso-estudio
#./install
#sed -i 's/^Icon=.*/Icon=notification-audio-play/' Arrancar.desktop
#sed -i 's/^Icon=.*/Icon=notification-audio-stop/' Parar.desktop
#sed -i 's/^Icon=.*/Icon=notification-network-wireless-full/' Configurar_rutas.desktop
#sed -i 's/^Icon=.*/Icon=notification-network-wireless-none/' Borrar_rutas.desktop
#cd ..
#rm -f rdor-te2-caso-estudio.tgz

sudo bash -c "echo 8192 > /proc/sys/fs/inotify/max_user_instances"
sudo bash -c "echo 524288 > /proc/sys/fs/inotify/max_user_watches"

yes | pip install netaddr
sudo wget --no-check-certificate https://idefix.dit.upm.es/download/rdor/.ipprefix/ipprefix-divide -O /usr/local/bin/ipprefix-divide
sudo wget --no-check-certificate https://idefix.dit.upm.es/download/rdor/.ipprefix/ipprefix-aggregate -O /usr/local/bin/ipprefix-aggregate
sudo wget --no-check-certificate https://idefix.dit.upm.es/download/rdor/.ipprefix/ipprefix-get-free -O /usr/local/bin/ipprefix-get-free
sudo chmod +x /usr/local/bin/ipprefix-*

ELAPSED_TIME=$(($SECONDS - $START_TIME))
echo "--"
echo "-- LAB installed in $ELAPSED_TIME sec. Close the terminal and open it again."
echo "--"
