#!/usr/bin/env bash

echo "- Upload NCS, bucket ? ${NCS_PUBLISH_BUCKET} "
if [[ -n ${NCS_PUBLISH_BUCKET} ]]; then

  if [[ -z ${NCS_NATIVE} ]]; then

    echo "------------------"
    echo "- Uploading binary ${NAME} to ${NCS_PUBLISH_BUCKET} from ${TEMPDEST}"
    s3cmd sync --recursive  --add-header="Cache-Control: max-age=31536000, immutable" "${TEMPDEST}/" "s3://${NCS_PUBLISH_BUCKET}/public/bin/${NAME}/"

    if [[ -f ${TEMPDEST}/index.cdn.html ]]; then
      echo "- Copying Root CDN Launcher"
      s3cmd put -m "text/html" --add-header="Cache-Control: no-cache" "${TEMPDEST}/index.cdn.html" "s3://${NCS_PUBLISH_BUCKET}/public/app/${NAME}"
    fi

    if [[ -n ${NCS_ROOT_LAUNCHER} ]]; then
      if [[ -f ${TEMPDEST}/index.root.html ]]; then
        echo "- Copying Root Launcher"
        s3cmd put -m "text/html" --add-header="Cache-Control: no-cache" "${TEMPDEST}/index.root.html" "s3://${NCS_PUBLISH_BUCKET}/public/${NCS_ROOT_LAUNCHER}"
      fi
    fi
  else
    echo "! Native Application, not publishing HTM but creating entry in bin/"
    s3cmd put -m "text/plain" "${TOOLROOT}/placeholder.txt"  "s3://${NCS_PUBLISH_BUCKET}/public/bin/${NAME}/.placeholder"
  fi

  if [[ -z $BUILD_NOCDN ]]; then
    # META dir gets copied to META cloud partition
    if [[ -d ${SOURCEROOT}/${NAME}/cdn/meta ]]; then
      echo "- Publishing CDN Metadata"
      s3cmd sync --recursive "${SOURCEROOT}/${NAME}/cdn/meta/" "s3://${NCS_PUBLISH_BUCKET}/meta/app/${NAME}/"
    else
      echo "- No CDN Application Metadata"
    fi

    # COTENT dir gets copied to APP DIR
    if [[ -d ${SOURCEROOT}/${NAME}/cdn/content ]]; then
      echo "- Publishing CDN Application Content"
      s3cmd sync --recursive --delete-removed --add-header="Cache-Control: max-age=31536000, immutable" "${SOURCEROOT}/${NAME}/cdn/content/" "s3://${NCS_PUBLISH_BUCKET}/public/app/${NAME}/"
    else
      echo "- No CDN Application Content"
    fi

    # PLATFORM dir gets copied to APP DIR
    if [[ -d ${SOURCEROOT}/${NAME}/cdn/platform ]]; then
      echo "- Publishing CDN Platform Content"
      s3cmd sync --recursive --exclude "*.md" --add-header="Cache-Control: max-age=31536000, immutable" "${SOURCEROOT}/${NAME}/cdn/platform/" "s3://${NCS_PUBLISH_BUCKET}/public/platform/"
      s3cmd sync --recursive --exclude "*" --include "*.md" --add-header="Cache-Control: max-age=259200, immutable" "${SOURCEROOT}/${NAME}/cdn/platform/" "s3://${NCS_PUBLISH_BUCKET}/public/platform/"
    else
      echo "- No CDN Platform Content"
    fi

    # ROOT ASSETS
    if [[ -d ${SOURCEROOT}/${NAME}/assets.root ]]; then
      echo "- Publishing CDN Root Assets"
      s3cmd put --add-header="Cache-Control: max-age=31536000, immutable" ${SOURCEROOT}/${NAME}/assets.root/* "s3://${NCS_PUBLISH_BUCKET}/public/"
    else
      echo "- No CDN Root Assets"
    fi

  fi
   # Invalidate Distro
  if [[ -f ${HOME}/.aws/credentials && -n ${NCS_DISTRO} && -z ${BUILD_NOINVALIDATE} ]]; then
     echo "- Invalidating ${NCS_DISTRO}"
     aws cloudfront create-invalidation --distribution-id "${NCS_DISTRO}" --paths "/*"
  fi
fi

# s3cmd sync --recursive lib.raw/${VERSION} s3://nobj/public/lib/
