#!/bin/bash
# vm-setup.sh
#  
# This script installs ONOS dependencies and installs a desktop environment on a Mininet VM.


export CURRENT_USER=tutorial1
export SDN_IP_USER=sdnip
export DIST_USER=distributed
export OPT_USER=optical
export USER_HOME=/home/${CURRENT_USER}

URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=tutorial1-setup.sh'
SDNIP_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=sdnip-setup.sh'
DIST_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=dist-setup.sh'
OPT_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=opt-setup.sh'

sudo /usr/sbin/useradd -c "Basic ONOS Tutorial" -d /home/${CURRENT_USER} -U -m -p $(openssl passwd -1 ${CURRENT_USER}) -s /bin/bash ${CURRENT_USER}
sudo /usr/sbin/useradd -c "Basic SDN-IP Tutorial" -d /home/${SDN_IP_USER} -U -m -p $(openssl passwd -1 ${SDN_IP_USER}) -s /bin/bash ${SDN_IP_USER}
sudo /usr/sbin/useradd -c "Distributed Tutorial" -d /home/${DIST_USER} -U -m -p $(openssl passwd -1 ${DIST_USER}) -s /bin/bash ${DIST_USER}
sudo /usr/sbin/useradd -c "Optical Tutorial" -d /home/${OPT_USER} -U -m -p $(openssl passwd -1 ${OPT_USER}) -s /bin/bash ${OPT_USER}


echo "${CURRENT_USER} ALL=(ALL) NOPASSWD:ALL" >> tutorial1
sudo cp tutorial1 /etc/sudoers.d
sudo chown root:root /etc/sudoers.d/tutorial1

echo "${SDN_IP_USER} ALL=(ALL) NOPASSWD:ALL" >> sdnip
sudo cp sdnip /etc/sudoers.d
sudo chown root:root /etc/sudoers.d/sdnip


echo "${DIST_USER} ALL=(ALL) NOPASSWD:ALL" >> dist
sudo cp dist /etc/sudoers.d
sudo chown root:root /etc/sudoers.d/dist

echo "${OPT_USER} ALL=(ALL) NOPASSWD:ALL" >> opt
sudo cp opt /etc/sudoers.d
sudo chown root:root /etc/sudoers.d/opt

sudo apt-get update

sudo apt-get install -y git openjdk-8-jdk maven unzip quagga docker.io curl erlang make gcc wget autoconf openssl libssl0.9.8 libssl-dev libncurses5 libncurses5-dev
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac

#--------------- Setup Mininet ----------------

#git clone git://github.com/mininet/mininet

#mininet/util/install.sh -a

# -------------- Switch User ------------------

wget -O tutorial1-setup.sh $URL

sudo -u ${CURRENT_USER} -H sh -c 'cp tutorial1-setup.sh ~/ && cd ~/ && sh tutorial1-setup.sh'

wget -O sdnip-setup.sh $SDNIP_URL

sudo -u ${SDN_IP_USER} -H sh -c 'cp sdnip-setup.sh ~/ && cd ~/ && sh sdnip-setup.sh'

wget -O dist-setup.sh $DIST_URL

sudo -u ${DIST_USER} -H sh -c 'cp dist-setup.sh ~/ && cd ~/ && sh dist-setup.sh'

wget -O opt-setup.sh $OPT_URL

sudo -u ${OPT_USER} -H sh -c 'cp opt-setup.sh ~/ && cd ~/ && sh opt-setup.sh'
