#!/usr/bin/env bash

set -e

GH=false
DAY_RELEASE=false
for ARG in "$@"; do
  case "$ARG" in
    -gh)
      GH=true
      ;;
    -dr)
      DAY_RELEASE=true
      ;;
  esac
done

cd $(dirname $0)/../..

ROOT_DIR="$(pwd)"
DIST_DIR="$(pwd)/dist"

VERSION=$(node -p "require('./package.json').version")

echo "Start build version: ${VERSION}"

echo ""
echo "Generate color less"
echo ""
node ./scripts/color-less.js

echo '===== need mock'
sed -i "s/const MOCK_MODULES = !environment.production/const MOCK_MODULES = true/g" ${ROOT_DIR}/src/app/delon.module.ts
sed -i "s/if (!environment.production)/if (true)/g" ${ROOT_DIR}/src/app/layout/default/default.component.ts

if [[ ${DAY_RELEASE} == true ]]; then
  NG_ALAIN_VERSION=$(node -p "require('./node_modules/ng-alain/package.json').version")
  echo "Current ng-alain version: ${NG_ALAIN_VERSION}"
  echo ""
  echo "Day Build, Muse be download @delon build packages"
  git clone --depth 1 https://github.com/ng-alain/delon-builds.git
  rm -rf node_modules/@delon
  rm -rf node_modules/ng-alain
  echo "Copies"
  rsync -am delon-builds/ node_modules/
  NG_ALAIN_VERSION=$(node -p "require('./node_modules/ng-alain/package.json').version")
  echo "After ng-alain version: ${NG_ALAIN_VERSION}"
fi

echo ""
echo "Build angular"
echo ""
if [[ ${GH} == true ]]; then
  $(npm bin)/ng build --prod --build-optimizer --base-href /ng-alain/
else
  $(npm bin)/ng build --prod --build-optimizer
fi
cp -f ${DIST_DIR}/index.html ${DIST_DIR}/404.html

if [[ ${GH} == true ]]; then
  commitAuthorName=$(git --no-pager show -s --format='%an' HEAD)

  if [[ ${commitAuthorName} != 'cipchk' ]] && [[ ${commitAuthorName} != '卡色' ]]; then
    echo "Warning: Just only cipchk or 卡色 user (current: ${commitAuthorName})"
    exit 0
  fi

  if [ -z ${NG_ALAIN_BUILDS_TOKEN} ]; then
    echo "Error: No access token for GitHub could be found." \
        "Please set the environment variable 'NG_ALAIN_BUILDS_TOKEN'."
    exit 0
  fi

  echo ""
  echo "Deploy by gh-pages"
  echo ""
  $(npm bin)/gh-pages -d dist -r "https://${NG_ALAIN_BUILDS_TOKEN}@github.com/ng-alain/ng-alain.git"
fi

echo "Finished"