#!/bin/bash

echo "--"
echo "-- Instalando practicas Redes IP..."
echo "--"
START_TIME=$SECONDS

# Borramos el JetBrains para tener espacio en disco
rm -rf /home/upm/.local/share/JetBrains/

# Creamos el directorio Documentos
mkdir -p Documentos

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 \
  vlan w3m wmctrl xdotool xfce4-terminal xterm lsof \
  wireshark yad tinc

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

cd /usr/share/vnx/filesystems/
sudo vnx_download_rootfs -r vnx_rootfs_lxc_ubuntu64-24.04-v025-vnxlab.tgz -l -y
sudo ln -s /usr/share/vnx/filesystems/vnx_rootfs_lxc_ubuntu64-24.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 https://web.dit.upm.es/~rdor10/entregas/valoresIP/rdor-t1-4.tar
#tar xvf rdor-t1-4.tar --warning=no-unknown-keyword
#cd rdor-t1-4
#./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-4.tar

#wget https://idefix.dit.upm.es/download/rdor/tema2/rdor-te2-caso-estudio.tgz
#tar xfvz rdor-te2-caso-estudio.tgz 
#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"

sudo apt install -y python3-netaddr
sudo wget https://idefix.dit.upm.es/download/rdor/.ipprefix/ipprefix-divide -O /usr/local/bin/ipprefix-divide
sudo wget https://idefix.dit.upm.es/download/rdor/.ipprefix/ipprefix-aggregate -O /usr/local/bin/ipprefix-aggregate
sudo wget 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-*

#sudo sed -i 's/virbr0/lxcbr0/' /usr/share/vnx/examples/*.xml

# Create virbr0 bridge connected to lxcbr0
sudo brctl addbr virbr0
sudo ip link add dev lxcbrif type veth peer name virbrif
sudo brctl addif lxcbr0 lxcbrif
sudo brctl addif virbr0 virbrif
sudo ip link set dev lxcbrif up
sudo ip link set dev virbrif up
sudo ip link set dev virbr0 up
sudo ip link set dev lxcbr0 up

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