#!/bin/bash

# Copyright (C) 2011-2015 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
#
# This is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the
# Free Software Foundation, Inc.,
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.

COMPONENT_MAIN="main"
COMPONENT_LTS="lts"
COMPONENT_NIGHTLY="nightly"

LIB_PACKAGES_NIGHTLY=
LIB_PACKAGES_MAIN=
APP_PACKAGES_NIGHTLY=
APP_PACKAGES_MAIN=

PREFIX=$(echo `basename $0` | cut -d"-" -f1)
test -f ~/.buildscripts/$PREFIX.conf && . ~/.buildscripts/$PREFIX.conf || { echo "$0 has no valid context prefix..."; exit 1; }

set -ex

COMPONENT=${1:-""}
CODENAME=${2:-""}

# build the newest code... (nightly-builds)
[ "x$COMPONENT" = "x$COMPONENT_NIGHTLY" ] || [ -z $COMPONENT ] && {
    echo -e $LIB_PACKAGES_NIGHTLY $APP_PACKAGES_NIGHTLY | while read pkg comp checkout; do
	if [ -n $CODENAME ]; then 
		comp="$comp/$CODENAME"
	fi
	if [ "x$(basename $0)" = "x$PREFIX-build-all-packages" ]; then
		$PREFIX-build-package $pkg $comp $checkout
	elif [ "x$(basename $0)" = "x$PREFIX-upload-all-packages" ]; then
		$PREFIX-upload-package $pkg $comp $checkout
	elif [ "x$(basename $0)" = "x$PREFIX-build+upload-all-packages" ]; then
		$PREFIX-build-package $pkg $comp $checkout && $PREFIX-upload-package $pkg $comp $checkout
	fi
    done
}

# build all packages tagged as build-main
[ "x$COMPONENT" = "x$COMPONENT_MAIN" ] || [ -z $COMPONENT ] && {
    echo -e $LIB_PACKAGES_MAIN $APP_PACKAGES_MAIN | while read pkg comp checkout; do
	if [ -n $CODENAME ]; then
		comp="$comp/$CODENAME"
	fi
	if [ "x$(basename $0)" = "x$PREFIX-build-all-packages" ]; then
		$PREFIX-build-package $pkg $comp $checkout
	elif [ "x$(basename $0)" = "x$PREFIX-upload-all-packages" ]; then
		$PREFIX-upload-package $pkg $comp $checkout
	elif [ "x$(basename $0)" = "x$PREFIX-build+upload-all-packages" ]; then
		$PREFIX-build-package $pkg $comp $checkout && $PREFIX-upload-package $pkg $comp $checkout
	fi
    done
}

# build all packages marked as lts
[ "x$COMPONENT" = "x$COMPONENT_LTS" ] || [ -z $COMPONENT ] && {
    echo -e $LIB_PACKAGES_LTS $APP_PACKAGES_LTS | while read pkg comp checkout; do
	if [ -n $CODENAME ]; then
		comp="$comp/$CODENAME"
	fi
	if [ "x$(basename $0)" = "x$PREFIX-build-all-packages" ]; then
		$PREFIX-build-package $pkg $comp $checkout
	elif [ "x$(basename $0)" = "x$PREFIX-upload-all-packages" ]; then
		$PREFIX-upload-package $pkg $comp $checkout
	elif [ "x$(basename $0)" = "x$PREFIX-build+upload-all-packages" ]; then
		$PREFIX-build-package $pkg $comp $checkout && $PREFIX-upload-package $pkg $comp $checkout
	fi
    done
}

echo "Component: $COMPONENT"
echo "Main: $COMPONENT_MAIN"
echo "LTS: $COMPONENT_LTS"
echo "Nightly: $COMPONENT_NIGHTLY"
