USAGE="Usage: $0 templateName applicationName"

set -e

function aggregate() {
  if [[ -d ${1}/${2} ]]; then
    echo "--------------------------- ${1} - ${2}"
    cp -Rv "${1}/${2}/" "${PROJECTROOT}/combined/${2}/"
  fi
}

export RELSCRIPTPATH="$(dirname $(realpath "$0"))"
source "${RELSCRIPTPATH}/env"

NAME=$(basename $(realpath .))

export SOURCEROOT="$(
  cd "$(dirname ".")/.." >/dev/null 2>&1
  pwd -P
)"

# NAME=$1
NAME=$(basename $(realpath .))
PROJECTROOT=${SOURCEROOT}/${NAME}

echo "- Source Root ... ${SOURCEROOT}"
echo "- Script Path ... ${SCRIPTPATH}"
echo "- Project Root .. ${PROJECTROOT}"

if [[ ! -d ${PROJECTROOT}/submodules ]]; then
  echo "! No submodules to combine."
  exit 1
else
  echo "---------------------------"
  ls -1 "${PROJECTROOT}/submodules"
  echo "---------------------------"
fi

if [[ -d ${PROJECTROOT}/combined ]]; then
  rm -rf "${PROJECTROOT}/combined"
fi


mkdir -p \
  "${PROJECTROOT}/combined/src" \
  "${PROJECTROOT}/combined/lib" \
  "${PROJECTROOT}/combined/css" \
  "${PROJECTROOT}/combined/assets"

find submodules -type d -maxdepth 1 -print0 |
  while IFS= read -r -d '' MODULE; do
    if [[ $MODULE != "submodules" ]]; then
      echo "found ${MODULE}"
      aggregate "${MODULE}" src
      aggregate "${MODULE}" lib
      aggregate "${MODULE}" assets
      aggregate "${MODULE}" css
    fi
  done
