#!/bin/bash


#helper functions

announcement(){
  echo "$(tput setaf 3)"
  echo "================================================="
  for arg in "$@"
  do
      echo "$arg"
  done
  echo "================================================="
  echo "$(tput sgr0)"
 
}

alert(){
  echo "$(tput setaf 1)"
  echo "================================================="
  for arg in "$@"
  do
      echo "$arg"
  done
  echo "================================================="
  echo "$(tput sgr0)"
 
}

echo_red() {
    echo "$(tput setaf 1) $1 $(tput sgr0)"
}

echo_green() {
    echo "$(tput setaf 2) $1 $(tput sgr0)"
}


fail () {
    echo -e "Error encountered during install"
    echo -n "Cleaning up..."
    umount sdcard/proc
    umount sdcard/sys
    umount sdcard/dev/pts
    fuser -av sdcard
    fuser -kv sdcard
    umount sdcard/boot
    fuser -k sdcard
    umount sdcard
    kpartx -dv $image_name
    rm -rf sdcard
    rm $image_name
    echo "[done]"
    exit 1
}

# Apache iota Raspberry Pi Img Builder

# BEGIN Configuration
image_name=iota_installer_rpi_v0_1a.img
image_size=1 
release=jessie
http=http://mirrordirector.raspbian.org/raspbian	
scala_url=https://downloads.typesafe.com/scala/2.11.6/scala-2.11.6.tgz
spark_url=http://apache.mirror.anlx.net/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz
spark_redis_url=https://github.com/RedisLabs/spark-redis.git
libsodium_url=https://download.libsodium.org/libsodium/releases/libsodium-1.0.3.tar.gz
zeromq_url=http://download.zeromq.org/zeromq-4.1.3.tar.gz
mqtt_key=http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
mqtt_url=http://repo.mosquitto.org/debian/mosquitto-$(awk -F"[)(]+" '/VERSION=/ {print $2}' /etc/os-release).list
bootloader=kernel 		
root_file_system=ext4
mkfs_ext4_options="^has_journal -E stride=0,stripe-width=128 -b 4096"
keyboard_layout=us
timeserver=time.nist.gov

# stuff to have cdebootstrap to install or exclude, just use the ',' format
include=dphys-swapfile
exclude=
not_installed="$(tput setaf 1)not installed.$(tput sgr0)"
installed="$(tput setaf 2)installed.$(tput sgr0)"

# use 'misc_stuff' to add routine packages with apt-get after cdebootstrap install complete
misc_stuff="libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc dbus fake-hwclock psmisc ssh ntp vim"
# END Configurization

# Hardware check
RPI1_HARDWARE="BCM2708"
RPI2_HARDWARE="BCM2709"
rpi_hardware=$(grep Hardware /proc/cpuinfo | cut -d " " -f 2)
rpi_hardware_version="UNKNOWN !!"

if [ "$rpi_hardware" = "$RPI1_HARDWARE" ] ; then
    rpi_version="rpi"
elif [ "$rpi_hardware" = "$RPI2_HARDWARE" ] ; then
    rpi_version="rpi2"
else
    alert "    Alert: No Raspberry Pi hardware detected!!" \
          " Value of rpi_hardware variable: '${rpi_hardware}'"
    exit 1
fi

echo ""
announcement "Raspberry Pi Iota Installer" \
             "Revision 0.0.1a" \
             "Built on May 1, 2016" \
             "Running on Raspberry Pi version ${rpi_hardware}" \
             "http://incubator.apache.org/projects/iota.html"

# Check to see if installer is being run as root
start_time=$(date)
echo -en "hecking for root to run the installer ... "
if [ ${EUID} -ne 0 ]; then
   echo_red "[Failed]"
   alert "     Alert: iota installer must run as root!!" \
         " Try 'sudo ./iota_rpi_installer_0.1.sh' as a user"
   exit 1
else
    echo_green "[Done]"
fi


# Check for base programs that are needed

announcement "Checking for necessary base programs to be installed..."
APS=""

echo -n "Checking for fuser ... "
if [ `which fuser` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="psmisc "
fi

echo -n "Checking for ioctl ... "
if [ -f /usr/include/linux/ioctl.h ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="libc6-dev "
fi

echo -n "Checking for kpartx ... "
if [ `which kpartx` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="kpartx "
fi

echo -n "Checking for partprobe ... "
if [ `which partprobe` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="parted "
fi

echo -n "Checking for dosfstools ... "
if [ `which fsck.vfat` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="dosfstools "
fi

echo -n "Checking for cdebootstrap ... "
if [ `which cdebootstrap` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="cdebootstrap "
fi
echo -n "Checking for curl ... "
if [ `which curl` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="curl "
fi
echo -n "Checking for git ... "
if [ `which git` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="git "
fi
echo -n "Checking for vim ... "
if [ `which vim` ]; then
    echo_green "installed"
else
    echo_red "not installed"
    APS+="vim "
fi

if [ "$APS" != "" ]; then
    announcement "iota installer needs the following base applications installed: " "$APS"
    echo -n "Would you like me to get $APS for you ?? [Y/n]: "
	read resp
	if [ "$resp" = "" ] || [ "$resp" = "y" ] || [ "$resp" = "yes" ]; then
        apt-get update
        apt-get -y install $APS
        announcement "All base applications are now installed."
    else
        alert "Necessary Applications not installed" \
             "Exiting .. :(~"
        exit 1
    fi
else
    announcement "No further base applications needed .. :)~"
fi  

 # install questions
announcement "Starting the network configuration ..."

echo -n "Please enter the hostname: [iota] "
read resp
if [ "$resp" = "" ]; then
    hostname=iota
else
    hostname="$resp"
fi

echo -n "Please enter the domain name: [] "
read resp
if [ "$resp" = "" ]; then
    domain_name=
else
    domain_name="$resp"
fi

echo -n "Please enter the root password: [root]"
read resp
if [ "$resp" = "" ]; then
    root_password=root
else
    root_password="$resp"
fi

echo -n "Please enter the wifi name: [Enter if you don't want to configure wifi now]"
read resp_wifi_name
if [ "$resp_wifi_name" != "" ]; then
    echo -n "Please enter the wifi password: "
    read resp_wifi_passwd
fi

echo -n "Enabe DHCP for networking [Y/n]? : "
read resp
if [ "$resp" = "" ] || [ "$resp" = "y" ] || [ "$resp" = "yes" ]; then
    dhcp="yes"
else
    dhcp="no"
    echo -n "Please enter IP address :"
    read resp
    address="$resp"
    echo -n "Please enter IP netmask :"
    read resp
    netmask="$resp"
    echo -n "Please enter IP broadcast :"
    read resp
    broadcast="$resp"
    echo -n "Please enter IP gateway :"
    read resp
    gateway="$resp"
fi

# Other Installs (Spark, Redis, SBT, Scala, ZeroMQ, MQTT

echo "====================================================="
echo -n "Would you like me to get Redis for you ?? [Y/n]: "
read resp_redis
echo -n "Would you like me to get Scala for you ?? [Y/n]: "
read resp_scala
echo -n "Would you like me to get Spark for you ?? [Y/n]: "
read resp_spark
echo -n "Would you like me to get ZeroMQ for you ?? [Y/n]: "
read resp_zeromq
echo -n "Would you like me to get MQTT for you ?? [Y/n]: "
read resp_mqtt
echo -n "Would you like me to get Cockroachdb for you ?? [Y/n]: "
read resp_cockroach


# Create image file
announcement "Creating a zero-filled file $image_name $image_size mega blocks big"
dd if=/dev/zero of=$image_name  bs=1  count="$image_size" iflag=fullblock seek=1G
thingy=$image_name

# Create partitions
announcement "Creating partitions"
fdisk_version=$(fdisk -v | grep 2 | cut -d "." -f2)
echo -n "fdisk_version "; echo $fdisk_version
if [ "$fdisk_version" -lt 25 ]; then
    echo "old"
    fdisk $thingy <<EOF
o       # clear the in memory partition table
n       # new partition

+128M   # 128 MB boot parttion
a       # make a partition bootable
1       # partition number 1
t
6
n
w       # write the partition table
EOF
else
    echo "new"
    fdisk $thingy <<EOF
o
n



+128M
a
t
6
n




w
EOF
fi

announcement "Setting up kpartx drive mapper for $image_name" \
             "and define loopback devices for boot & root"

loop_device=$(kpartx -av $image_name | grep p1 | cut -d" " -f8 | awk '{print$1}')
echo -n "Loop device is "
echo $loop_device
echo -e "\n\nPartprobing $thingy\n"
partprobe $loop_device
echo ""
bootpart=$(echo $loop_device | grep dev | cut -d"/" -f3 | awk '{print$1}')p1
bootpart=/dev/mapper/$bootpart
rootpart=$(echo $loop_device | grep dev | cut -d"/" -f3 | awk '{print$1}')p2
rootpart=/dev/mapper/$rootpart
echo -n "Boot partition is "
echo $bootpart
echo -n "Root partition is "
echo $rootpart
announcement "Formating partitions"
mkdosfs -n BOOT $bootpart
echo ""

if [ "$root_file_system" == "ext4" ]; then
    echo "mkfs.ext4 -O $mkfs_ext4_options  -L Raspbian $rootpart"
    echo "y" | mkfs.ext4 -O $mkfs_ext4_options  -L Raspbian $rootpart && sync
    echo " "
fi
echo ""
fdisk -l $thingy

# cdebootstrap is a tool which will install a Debian base system into a subdirectory of another
announcement "Setting up for cdebootstrap"
echo -e "mkdir sdcard, mount sdcard as /, cdebootstraping $rootpart, mount /boot as $bootpart and mount /proc,/sys & /dev/pts\n\n"
mkdir -v sdcard
echo -n "Mounting "
mount -v -t $root_file_system -o sync $rootpart sdcard
echo " "
include="--include=kbd,locales,keyboard-configuration,console-setup,$include"
exclude="--exclude=$exclude"
echo -n "cdebootstrap's line  "
echo "cdebootstrap --arch armhf ${release} sdcard $http ${include} $exclude"
echo " "

cdebootstrap --arch armhf ${release} sdcard $http ${include} $exclude --allow-unauthenticated && sync || fail

echo -e "\nMount new chroot system\n"
mount -v -t vfat -o sync $bootpart sdcard/boot
mount -v proc sdcard/proc -t proc
mount -v sysfs sdcard/sys -t sysfs
mount -v --bind /dev/pts sdcard/dev/pts

# Adjust a few things
echo -e "\n\nCopy, adjust and reconfigure\n"
echo "Setting up the root password... "
echo root:$root_password | chroot sdcard chpasswd
echo ""

echo "Getting gpg.key's"; echo ""
chroot sdcard wget http://archive.raspberrypi.org/debian/raspberrypi.gpg.key
chroot sdcard apt-key add raspberrypi.gpg.key
rm -v sdcard/raspberrypi.gpg.key; echo ""
chroot sdcard wget http://mirrordirector.raspbian.org/raspbian.public.key
chroot sdcard apt-key add raspbian.public.key
rm -v sdcard/raspbian.public.key; echo ""
chroot sdcard apt-key list

echo -e "\nAdjusting /etc/apt/sources.list for Release $release  Bootloader $bootloader  rPi_version $rpi_version  debian_version $debian_version\n"

if [ "$bootloader" == "kernel" ]; then
    rasp_stuff+=" raspberrypi-bootloader"
    sed -i sdcard/etc/apt/sources.list -e "s/main/main contrib non-free firmware/"
    echo "deb http://archive.raspberrypi.org/debian/ jessie main" >> sdcard/etc/apt/sources.list
else
    rasp_stuff+=" raspberrypi-bootloader-nokernel linux-image-$rpi_version-rpfv hardlink oracle-java8-jdk"
    echo -n "Creating preference for libraspberrypi-bin... "
    echo "# This sets the preference for the kernel version lower so the no-kernel are used" > sdcard/etc/apt/preferences.d/02VideoCore.pref
    echo "Package: libraspberrypi-bin libraspberrypi0 libraspberrypi-dev libraspberrypi-doc"  >> sdcard/etc/apt/preferences.d/02VideoCore.pref
    echo "Pin: release o=Raspbian,n=$release"  >> sdcard/etc/apt/preferences.d/02VideoCore.pref
    echo "Pin-Priority: 700"  >> sdcard/etc/apt/preferences.d/02VideoCore.pref
    if [ "$debian_version" == "ftp" ] && [ "$rpi_version" == "rpi2" ]; then
        sed -i sdcard/etc/apt/sources.list -e "s/main/main contrib non-free/"
        echo "deb http://mirrordirector.raspbian.org/raspbian $release main firmware" >> sdcard/etc/apt/sources.list
        sed -i sdcard/etc/apt/preferences.d/02VideoCore.pref -e "s/700/49/"
    else
        sed -i sdcard/etc/apt/sources.list -e "s/main/main contrib non-free firmware/"
        echo "deb http://archive.raspberrypi.org/debian wheezy main" >> sdcard/etc/apt/sources.list
    fi
fi

echo "Contents of /etc/apt/sources.list"
cat sdcard/etc/apt/sources.list
echo "Contents of /etc/apt/preferences.d/"
cat sdcard/etc/apt/preferences.d/*; echo ""

# Time Management
echo "Changing timezone too..."
if [ "$timezone" == "" ]; then 
    cp -v /etc/timezone sdcard/etc/timezone
else
    echo "$timezone" > sdcard/etc/timezone
fi
cat sdcard/etc/timezone; echo ""

echo "Adjusting locales too..."
if [ "$locales" == "" ]; then 
    cp -v /etc/locale.gen sdcard/etc/locale.gen
else
    sed -i "s/^# \($locales .*\)/\1/" sdcard/etc/locale.gen
fi
grep -v '^#' sdcard/etc/locale.gen; echo ""

echo "Adjusting default local too..."
if [ "$default_locale" == "" ]; then 
    default_locale=$(fgrep "=" /etc/default/locale | cut -f 2 -d '=')
fi
echo $default_locale; echo ""


# This will record the time to get to this point
PRE_NETWORK_DURATION=$(date +%s)

date_set=false
if [ "$date_set" = "false" ] ; then
    # set time with ntpdate
    ntpdate-debian -b &>/dev/null
    if [ $? -eq 0 ] ; then
        echo -n "Time set using ntpdate to... "
        date
        date_set=true
    else
        echo "Failed to set time using ntpdate!"
    fi

    if [ "$date_set" = "false" ] ; then
        # failed to set time with ntpdate, fall back to rdate
        # time server addresses taken from http://tf.nist.gov/tf-cgi/servers.cgi
        timeservers=$timeserver
        timeservers="$timeservers time.nist.gov nist1.symmetricom.com"
        timeservers="$timeservers nist-time-server.eoni.com utcnist.colorado.edu"
        timeservers="$timeservers nist1-pa.ustiming.org nist.expertsmi.com"
        timeservers="$timeservers nist1-macon.macon.ga.us wolfnisttime.com"
        timeservers="$timeservers nist.time.nosc.us nist.netservicesgroup.com"
        timeservers="$timeservers nisttime.carsoncity.k12.mi.us nist1-lnk.binary.net"
        timeservers="$timeservers ntp-nist.ldsbc.edu utcnist2.colorado.edu"
        timeservers="$timeservers nist1-ny2.ustiming.org wwv.nist.gov"
        for ts in $timeservers
        do
            rdate $ts &>/dev/null
            if [ $? -eq 0 ]; then
                echo -n "Time set using timeserver '$ts' to... "
                date
                date_set=true
                break
            else
                echo "Failed to set time using timeserver '$ts'."
            fi
        done
    fi
fi
if [ "$date_set" = "false" ] ; then
    echo "FAILED to set the date, so things are likely to fail now ..."
    echo "Make sure that rdate port 37 is not blocked by your firewall."
fi

# Record the time now that the time is set to a correct value
STARTTIME=$(date +%s)
# And substract the PRE_NETWORK_DURATION from STARTTIME to get the 
# REAL starting time.
REAL_STARTTIME=$(($STARTTIME - $PRE_NETWORK_DURATION))
echo ""
echo "Installation started at $(date --date="@$REAL_STARTTIME" --utc)."
echo ""

echo "Setting up keyboard"
if [ "$number_of_keys" == "" ]; then 
    cp -v /etc/default/keyboard sdcard/etc/default/keyboard
else
    # setting up keyboard package
    echo "Adjusting  keyboard to $number_of_keys $keyboard_layout... "
    # adjust variables
    xkbmodel=XKBMODEL='"'$number_of_keys'"'
    xkblayout=XKBLAYOUT='"'$keyboard_layout'"'
    xkbvariant=XKBVARIANT='"'$keyboard_variant'"'
    xkboptions=XKBOPTIONS='"'$keyboard_options'"'
    backspace=BACKSPACE='"'$backspace'"'

    # make keyboard file
    cat <<EOF > sdcard/etc/default/keyboard
# KEYBOARD CONFIGURATION FILE
$xkbmodel
$xkblayout
$xkbvariant
$xkboptions
$backspace
EOF
fi
echo ""; cat sdcard/etc/default/keyboard; echo ""
# end keyboard

echo "Creating cmdline.txt";echo ""
echo "dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait" > sdcard/boot/cmdline.txt

echo "Adding Raspberry Pi tweaks to sysctl.conf"; echo ""
echo "" >> sdcard/etc/sysctl.conf
echo "# http://www.raspberrypi.org/forums/viewtopic.php?p=104096#p104096" >> sdcard/etc/sysctl.conf
echo "# rpi tweaks" >> sdcard/etc/sysctl.conf
echo "vm.swappiness = 1" >> sdcard/etc/sysctl.conf
echo "vm.min_free_kbytes = 8192" >> sdcard/etc/sysctl.conf
echo "vm.vfs_cache_pressure = 50" >> sdcard/etc/sysctl.conf
echo "vm.dirty_writeback_centisecs = 1500" >> sdcard/etc/sysctl.conf
echo "vm.dirty_ratio = 20" >> sdcard/etc/sysctl.conf
echo "vm.dirty_background_ratio = 10" >> sdcard/etc/sysctl.conf


echo "Adjust hosts and hostname"; echo ""
echo $hostname > sdcard/etc/hostname
echo "127.0.1.1 $domain_name $hostname" >> sdcard/etc/hosts

echo "CONF_SWAPSIZE=100" > sdcard/etc/dphys-swapfile
sed -i sdcard/etc/default/rcS -e "s/^#FSCKFIX=no/FSCKFIX=yes/"
sed -i sdcard/lib/udev/rules.d/75-persistent-net-generator.rules -e 's/KERNEL\!="eth\*|ath\*|wlan\*\[0-9\]/KERNEL\!="ath\*/'
chroot sdcard dpkg-divert --add --local /lib/udev/rules.d/75-persistent-net-generator.rules


# Setup fstab
echo -e "\nSetting up fstab\n"
cat <<EOF > sdcard/etc/fstab
#<file system>  <dir>          <type>   <options>       <dump>  <pass>
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[on|off]  for that
EOF

cat sdcard/etc/fstab && sync; echo " "

chroot sdcard dpkg-reconfigure -f noninteractive locales
echo " "
chroot sdcard locale-gen LANG="$default_locale"
echo " "
chroot sdcard dpkg-reconfigure -f noninteractive tzdata
echo " "
chroot sdcard dpkg-reconfigure -f noninteractive keyboard-configuration
echo " "
chroot sdcard dpkg-reconfigure -f noninteractive console-setup

echo "Done Coping, adjusting and reconfiguring"

echo -e "Setting up networking\n\n"

cat <<EOF > sdcard/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
EOF

if [ "$dhcp" == "yes" ]; then
    echo "iface eth0 inet dhcp" >> sdcard/etc/network/interfaces
else
    echo "iface eth0 inet static" >> sdcard/etc/network/interfaces
    echo "    address	$address" >> sdcard/etc/network/interfaces
    echo "    netmask	$netmask" >> sdcard/etc/network/interfaces
    echo "    broadcast	$broadcast" >> sdcard/etc/network/interfaces
    echo "    gateway	$gateway" >> sdcard/etc/network/interfaces
fi

cat <<EOF > sdcard/etc/modprobe.d/ipv6.conf
# Don't load ipv6 by default
alias net-pf-10 off
#alias ipv6 off
EOF

echo "hostname "
cat sdcard/etc/hostname
echo " "
echo "resolv.conf "
cat sdcard/etc/resolv.conf
echo " "
echo "hosts"
cat sdcard/etc/hosts
echo " "
echo "network/interfaces"
cat sdcard/etc/network/interfaces
echo " "
echo "modprobe.d/ipv6.conf"
cat sdcard/etc/modprobe.d/ipv6.conf
echo " "

# Setup wifi
if [ "$resp_wifi_name" != "" ]; then
    echo -e "\nSetting up wifi\n"
    cat <<EOF >> sdcard/etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
EOF
    cat <<EOF >> sdcard/etc/wpa_supplicant/wpa_supplicant.conf
network={
    ssid="$resp_wifi_name"
    psk="$resp_wifi_passwd"
}
EOF
fi

# end Networking

# Update and install raspberrypi-bootloader
echo -e "\n\nUpdate install and install raspberrypi-bootloader and other stuff\n"
echo -e "apt-get update\n\n"
chroot sdcard apt-get update || fail
echo -e "\n\napt-get  -y upgrade\n\n"
chroot sdcard apt-get -y upgrade || fail
echo -e "\n\napt-get -y dist-upgrade\n\n"
chroot sdcard apt-get -y dist-upgrade || fail
chroot sdcard apt-get clean
echo -e "\n\napt-get -y install $rasp_stuff\n\n"
chroot sdcard apt-get -y install $rasp_stuff || fail
chroot sdcard apt-get clean

if [ "$misc_stuff" != "" ]; then
    echo -e "\n\nInstalling Misc_stuff apt-get -y install $misc_stuff\n\n"
    chroot sdcard apt-get -y install $misc_stuff || fail
    chroot sdcard apt-get clean
fi

chroot sdcard apt-get autoremove -y
echo -e "\n\nOk, Done with raspberrypi-bootloader and other stuff\n\n"
echo "=====================================================" 
echo ""

echo "====================================================="
if [ "$resp_redis" = "" ] || [ "$resp_redis" = "y" ] || [ "$resp_redis" = "yes" ]; then
    echo -n "Installing Redis...."
    resp_redis="y"
    chroot sdcard apt-get -y install redis-server python-redis
    echo "[done]"
else
    echo "Redis not installed"
    echo "====================================================="
    echo ""
fi
    
echo "====================================================="
if [ "$resp_scala" = "" ] || [ "$resp_scala" = "y" ] || [ "$resp_scala" = "yes" ]; then
    echo  "Installing Scala..."
    resp_scala="y"
    wget -P sdcard $scala_url
    mkdir -p sdcard/usr/lib/scala
    chroot sdcard tar -xzf scala-2.11.6.tgz -C /usr/lib/scala
    rm sdcard/scala-2.11.6.tgz*
    chroot sdcard ln -sf /usr/lib/scala/scala-2.11.6/bin/scala /bin/scala
    chroot sdcard ln -sf /usr/lib/scala/scala-2.11.6/bin/scalac /bin/scalac
    echo "[done]"
else
    echo "Scala not installed"
    echo "====================================================="
    echo ""
fi
 
echo "====================================================="
if [ "$resp_spark" = "" ] || [ "$resp_spark" = "y" ] || [ "$resp_spark" = "yes" ]; then
    echo -n "Installing Spark..."
    resp_spark="y"
    chroot sdcard apt-get -y install git &>/dev/null
    wget -P sdcard $spark_url
    chroot sdcard tar xzf spark-1.6.1-bin-hadoop2.6.tgz -C /opt
    rm sdcard/spark-1.6.1-bin-hadoop2.6.tgz*
    echo "[done]"

else
    echo "Spark not installed"
    echo "====================================================="
    echo ""
fi

echo "====================================================="
if [ "$resp_spark" = "y" ] && [ "$resp_redis" = "y" ] && [ "$resp_scala" = "y" ]; then
    echo -n "Installing maven..."
    chroot sdcard apt-get -y install maven
    echo "[done]"
    echo -n "Installing Spark-redis-connector..."
    chroot sdcard << EOF
git clone $spark_redis_url
cd spark-redis
mvn clean package -DskipTests
EOF
    echo "[done]"

else
    echo "Spark-redis-connector not installed"
    echo "====================================================="
    echo ""
fi


echo "====================================================="
if [ "$resp_zeromq" = "" ] || [ "$resp_zeromq" = "y" ] || [ "$resp_zeromq" = "yes" ]; then
    echo -n "Installing ZeroMQ pre-requisites..."
    chroot sdcard apt-get -y install libtool pkg-config build-essential autoconf automake &>/dev/null
    wget -P sdcard $libsodium_url
    chroot sdcard tar xzf libsodium-1.0.3.tar.gz
    rm sdcard/libsodium-1.0.3.tar.gz*
    chroot sdcard << EOF
cd libsodium-1.0.3/
./configure
make
make install
EOF
    rm -r sdcard/libsodium-1.0.3/
    echo "[done]"

    echo -n "Installing ZeroMQ..."
    wget -P sdcard $zeromq_url
    chroot sdcard << EOF
tar -zxf zeromq-4.1.3.tar.gz &>/dev/null
cd zeromq-4.1.3/
./configure
make
make install
ldconfig
cd ..
rm -r zeromq-4.1.3/
rm zeromq-4.1.3.tar.gz
EOF
    echo "[done]"
else
    echo "ZeroMQ not installed"
    echo "====================================================="
    echo ""
fi

echo "====================================================="
if [ "$resp_mqtt" = "" ] || [ "$resp_mqtt" = "y" ] || [ "$resp_mqtt" = "yes" ];
then
    echo -n "Installing MQTT..."
    chroot sdcard << EOF
curl -O $mqtt_key
apt-key add mosquitto-repo.gpg.key
rm mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
curl -O $mqtt_url
apt-get update
apt-get -y install mosquitto mosquitto-clients python-mosquitto
EOF
    echo "[done]"
else
    echo "MQTT not installed"
    echo "====================================================="
    echo ""
fi

echo "====================================================="
if [ "$resp_cockroach" = "" ] || [ "$resp_cockroach" = "y" ] || [ "$resp_cockroach" = "yes" ];
then
    echo -n "Installing cockroachdb..."
    sudo su
    cat <<EOF >> sdcard/root/.bashrc
export PATH=\$PATH:/usr/local/go/bin
export GOPATH=\$HOME/work
EOF
    exit
    wget -P sdcard https://storage.googleapis.com/golang/go1.6.2.linux-armv6l.tar.gz
    chroot sdcard << EOF
tar xzf go1.6.2.linux-armv6l.tar.gz  -C /usr/local
rm go1.6.2.linux-armv6l.tar.gz
go get -d github.com/cockroachdb/cockroach
cd \$GOPATH/src/github.com/cockroachdb/cockroach
git checkout beta-20160505
make build
EOF
    echo "[done]"
else
    echo "cockroachdb not installed"
    echo "====================================================="
    echo ""
fi



# wrap up

sync
du -ch sdcard | grep total
echo "=====================================================" 
echo " "
echo "Unmounting mount points"
fuser -av sdcard
fuser -kv sdcard
umount sdcard/proc
umount sdcard/sys
umount sdcard/dev/pts
umount -v sdcard/boot
umount -v sdcard
kpartx -dv $image_name
fuser -av sdcard
rm -rf sdcard
echo " "
echo $start_time
echo $(date)
echo " "
echo -e "\n\niota install finished\n"
echo "Move .img file to sd-card"
echo "=====================================================" 
exit 0
