#!/bin/bash
#title           :gluon-ffrgwest-0.8.13.sh
#description     :Build gluon version 2016.2.6 for Freifunk Region Ruhrgebiet West
#author          :Daniel Jäger
#date            :20170706
#version         :0.1
#usage           :wget http://scripts.djaeger.info/gluon-ffrgwest-0.8.13.sh -O - -q | bash
#===============================================================================

GLUON_TAG=v2016.2.6
GLUON_RELEASE=0.8.13
GLUON_BRANCH=stable
GLUON_BROKEN=1
GLUON_TARGETS="ar71xx-generic ar71xx-nand mpc85xx-generic brcm2708-bcm2708 brcm2708-bcm2709 x86-generic x86-64 x86-kvm_guest x86-xen_domu"

# logs start and enddate
LOGFILE=/tmp/gluon-build-log-$GLUON_RELEASE

# Options for make
OPTIONS="BROKEN=$BROKEN GLUON_RELEASE=$GLUON_RELEASE GLUON_BRANCH=$GLUON_BRANCH V=s --output-sync=recurse"

# detect amount of CPU cores
CORES=$(lscpu|grep -e '^CPU(s):'|xargs|cut -d" " -f2)

DEBIAN_FRONTEND=noninteractive
DEBIAN_PRIORITY=critical
DEBCONF_NOWARNINGS=yes

if [[ $EUID -eq 0 ]]; then
	echo "cannot be run as root"
	exit
fi

sudo apt-get install -y git make gcc g++ unzip libncurses5-dev zlib1g-dev subversion gawk bzip2 libssl-dev > /dev/null
rm -f $LOGFILE
rm -rf gluon-$GLUON_RELEASE

git clone -q -b $GLUON_TAG https://github.com/freifunk-gluon/gluon.git gluon-$GLUON_RELEASE 2> /dev/null
cd gluon-$GLUON_RELEASE
git clone -q -b $GLUON_RELEASE https://github.com/ffob/site-ffrgwest.git site 2> /dev/null
make update 2> /dev/null

start_timestamp=$(date +%s)
i=0
for TARGET in $GLUON_TARGETS; do
	start=$(date +%s)
	echo "############### $(date) start building target $TARGET ##################" >> $LOGFILE
	make -j$CORES GLUON_TARGET=$TARGET $OPTIONS || exit 1 
	echo "############### $(date) finished building target $TARGET ###############" >> $LOGFILE

	echo "Zeit seit Start: "$((($(date +%s)-$start_timestamp)/60))":"$((($(date +%s)-$start_timestamp)%60))" Minuten"
	M="Zeit $TARGET: "$((($(date +%s)-$start)/60))":"$((($(date +%s)-$start)%60))" Minuten"
	MESSAGE=$(echo -e "$MESSAGE\n$M")
	let i++
done && : "all targets created in folder output/images/"

cd ..

echo -n "finished: "; date

echo "############### $(date) finished script ################################" >> $LOGFILE
clear
echo -e "$MESSAGE" >> $LOGFILE
cat $LOGFILE