16e7c69efSopenharmony_ci#!/bin/bash
26e7c69efSopenharmony_ci
36e7c69efSopenharmony_ci# ----------------------------------------------------------------------------
46e7c69efSopenharmony_ci#  Hvigor startup script, version 1.0.0
56e7c69efSopenharmony_ci#
66e7c69efSopenharmony_ci#  Required ENV vars:
76e7c69efSopenharmony_ci#  ------------------
86e7c69efSopenharmony_ci#    NODE_HOME - location of a Node home dir
96e7c69efSopenharmony_ci#    or
106e7c69efSopenharmony_ci#    Add /usr/local/nodejs/bin to the PATH environment variable
116e7c69efSopenharmony_ci# ----------------------------------------------------------------------------
126e7c69efSopenharmony_ci
136e7c69efSopenharmony_ciHVIGOR_APP_HOME="`pwd -P`"
146e7c69efSopenharmony_ciHVIGOR_WRAPPER_SCRIPT=${HVIGOR_APP_HOME}/hvigor/hvigor-wrapper.js
156e7c69efSopenharmony_ci#NODE_OPTS="--max-old-space-size=4096"
166e7c69efSopenharmony_ci
176e7c69efSopenharmony_cifail() {
186e7c69efSopenharmony_ci  echo "$*"
196e7c69efSopenharmony_ci  exit 1
206e7c69efSopenharmony_ci}
216e7c69efSopenharmony_ci
226e7c69efSopenharmony_ciset_executable_node() {
236e7c69efSopenharmony_ci  EXECUTABLE_NODE="${NODE_HOME}/bin/node"
246e7c69efSopenharmony_ci  if [ -x "$EXECUTABLE_NODE" ]; then
256e7c69efSopenharmony_ci    return
266e7c69efSopenharmony_ci  fi
276e7c69efSopenharmony_ci
286e7c69efSopenharmony_ci  EXECUTABLE_NODE="${NODE_HOME}/node"
296e7c69efSopenharmony_ci  if [ -x "$EXECUTABLE_NODE" ]; then
306e7c69efSopenharmony_ci    return
316e7c69efSopenharmony_ci  fi
326e7c69efSopenharmony_ci  fail "ERROR: NODE_HOME is set to an invalid directory,check $NODE_HOME\n\nPlease set NODE_HOME in your environment to the location where your nodejs installed"
336e7c69efSopenharmony_ci}
346e7c69efSopenharmony_ci
356e7c69efSopenharmony_ci# Determine node to start hvigor wrapper script
366e7c69efSopenharmony_ciif [ -n "${NODE_HOME}" ]; then
376e7c69efSopenharmony_ci  set_executable_node
386e7c69efSopenharmony_cielse
396e7c69efSopenharmony_ci  EXECUTABLE_NODE="node"
406e7c69efSopenharmony_ci  command -v ${EXECUTABLE_NODE} &> /dev/null || fail "ERROR: NODE_HOME not set and 'node' command not found"
416e7c69efSopenharmony_cifi
426e7c69efSopenharmony_ci
436e7c69efSopenharmony_ci# Check hvigor wrapper script
446e7c69efSopenharmony_ciif [ ! -r "$HVIGOR_WRAPPER_SCRIPT" ]; then
456e7c69efSopenharmony_ci  fail "ERROR: Couldn't find hvigor/hvigor-wrapper.js in ${HVIGOR_APP_HOME}"
466e7c69efSopenharmony_cifi
476e7c69efSopenharmony_ci
486e7c69efSopenharmony_ciif [ -z "${NODE_OPTS}" ]; then
496e7c69efSopenharmony_ci  NODE_OPTS="--"
506e7c69efSopenharmony_cifi
516e7c69efSopenharmony_ci
526e7c69efSopenharmony_ci# start hvigor-wrapper script
536e7c69efSopenharmony_ciexec "${EXECUTABLE_NODE}" "${NODE_OPTS}" \
546e7c69efSopenharmony_ci  "${HVIGOR_WRAPPER_SCRIPT}" "$@"
55