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

GLUON_SITE=ffrgwest
GLUON_TAG=v2016.1.5
GLUON_RELEASE=0.8.5
GLUON_BRANCH=stable
#GLUON_BRANCH=exp$(date '+%Y%m%d')
GLUON_BROKEN=0
#GLUON_BROKEN=1
GLUON_TARGETS=ar71xx-generic
#GLUON_TARGETS="ar71xx-generic ar71xx-nand mpc85xx-generic 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_SITE"

# 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
#make dirclean
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/DJaeger/site-ffrgwest.git site 2> /dev/null
make update 2> /dev/null

start_timestamp=$(date +%s)
i=0
#set -x
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 ..

#set +x
echo -n "finished: "; date

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