#!/usr/bin/env bash

RELSCRIPTPATH="$(realpath "$0")"
SCRIPTPATH="$(
  cd "$(dirname "${RELSCRIPTPATH}")" >/dev/null 2>&1
  pwd -P
)"
source "${SCRIPTPATH}/env"

USAGE="Usage: $0 [app-version]"

NAME=${RUNDIRNAME}

export BUILDTEMP=${SOURCEROOT}/${NAME}/.build

###########################

cd "${TOOLROOT}/build/make-src" || exit 3

if [[ ! -d "${SOURCEROOT}/${NAME}" ]]; then
  echo "! ${BUILDTYPE} [${NAME}] not found in ${SOURCEROOT}"
  exit 4
else
  echo "- sourceroot ${SOURCEROOT}"
  echo "- application ${NAME}"
fi

if [[ -f ${SOURCEROOT}/${NAME}/.template ]]; then

  source "${SOURCEROOT}/${NAME}/.template"
  echo "- Template ${TEMPLATE}"

else
  echo "Please init the application first."
  exit 5
fi

if [[ -n "$1" ]]; then
  VERSION=$1
  PUBLISHVERSION=$1
  echo "- Will publish Version $1"

else
  echo "- Development version, will not publish to NPM"
  VERSION=devel
  unset PUBLISHVERSION
fi

###########################

if [[ -n ${CLOUDDIR} ]]; then
  export CLOUDDEST=${CLOUDDIR}/${NAME}/
fi

###########################

export BUILDTYPE="app"


if [[ -n $BUILD_ONLYUPDATECDN ]]; then
  source "${TOOLROOT}/build/make-src/tool-init.sh" "${VERSION}" "${NAME}" "${TEMPLATE}" &&
    "${TOOLROOT}/scripts/upload-ncs.sh" "${PUBLISHVERSION}"
  exit 0
fi

if [[ -f ${SOURCEROOT}/${NAME}/.prepack ]]; then
  echo "- Prepack found"
  source "${SOURCEROOT}/${NAME}/.prepack"  "${SOURCEROOT}/${NAME}/"
fi


source "${TOOLROOT}/build/make-src/tool-init.sh" "${VERSION}" "${NAME}" "${TEMPLATE}" &&
  "${TOOLROOT}/build/make-src/tool-build${BUILD_STRATEGY}.sh" &&
  "${TOOLROOT}/build/make-src/tool-build-resources.sh" &&
  "${TOOLROOT}/scripts/postinstall.sh" "${NAME}" &&
  "${TOOLROOT}/scripts/upload.sh" "${NAME}" &&
  "${TOOLROOT}/scripts/upload-npm.sh" "${PUBLISHVERSION}"
  "${TOOLROOT}/scripts/upload-ncs.sh" "${PUBLISHVERSION}"
