blob: 8fc199d5a60589152adff71463631451913ac9a6 [file] [log] [blame]
#!/bin/sh
# Script name : build_ecompportal_fe.sh
# Script purpose : To have an easy way to build the front-end part of the eComp portal
# Pre requisites :
# 1. Your home directory must reside at /home
# 2. Your server must have a 'Node' installation
#----------------------------------------------------------------------------------------
################################################
### Functions
################################################
function log_message() {
msgType=$1
message=$2
if [ ${msgType} == "I" ]; then
printf "\033[32m %s \n\033[0m" "INF - ${message}"
elif [ ${msgType} == "E" ]; then
printf "\033[31m %s \n\033[0m" "ERR - ${message}"
else
echo "${msgType} - ${message}";
fi
}
function exit_with_error() {
log_message "E" ""
log_message "E" "$1"
log_message "E" ""
exit 1
}
################################################
### Hard coded information.
################################################
NVM_DIR="/home/${USER}/.nvm"
NODE_VERSION=v0.12.4
SCRIPT_USAGE="USAGE: $0 [ dev | ci | integ | qa ]"
################################################
### Verify arguments
################################################
log_message "I" "Checking command line arguments."
if [ $# == 1 ]; then
if [ $1 == "ci" -o $1 == "integ" -o $1 == "dev" -o $1 == "qa" ]; then
BUILD_BY_ENV=$1
else
exit_with_error "The environment '$1' is invalid."
fi
else
log_message "E" ""
log_message "E" "$SCRIPT_USAGE"
log_message "E" ""
exit 1
fi
log_message "I" "OK."
log_message "I" ""
################################################
### Set the node environment.
################################################
log_message "I" "Set the node environment."
if [ -s "$NVM_DIR/nvm.sh" ]; then
# This loads nvm
. "$NVM_DIR/nvm.sh"
if [ $? != 0 ]; then
exit_with_error "Cannot load the NODE env."
fi
else
exit_with_error "The nvm.sh script does not exist."
fi
log_message "I" "OK."
log_message "I" ""
################################################
### Set the node version manager version.
################################################
log_message "I" "Set the node version manager version."
nvm use v0.12.4
TOOLS_ROOT_FOLDER=${NVM_DIR}/versions/node/${NODE_VERSION}/bin
log_message "I" "OK."
log_message "I" ""
################################################
### Set the proxy servers.
################################################
log_message "I" "Set the proxy servers."
log_message "I" "OK."
log_message "I" ""
################################################
### Install bower, if neeeded.
################################################
log_message "I" "Install bower, if neeeded."
if [ ! -e ${TOOLS_ROOT_FOLDER}/bower ]; then
npm install -g bower
if [ $? != 0 ]; then
exit_with_error "Cannot install bower."
fi
fi
log_message "I" "OK."
log_message "I" ""
################################################
### Install grunt, if neeeded.
################################################
log_message "I" "Install grunt, if neeeded."
if [ ! -e ${TOOLS_ROOT_FOLDER}/grunt ]; then
npm config set ca ""
npm install -g grunt-cli
if [ $? != 0 ]; then
exit_with_error "Cannot install grunt."
fi
fi
log_message "I" "OK."
log_message "I" ""
################################################
### Run the Node package manager (NPM).
################################################
log_message "I" "Run the Node package manager (npm install)."
npm install
if [ $? != 0 ]; then
exit_with_error "Cannot run 'npm install'."
fi
log_message "I" "OK."
log_message "I" ""
################################################
### Install the Bower components.
################################################
log_message "I" "Install the Bower components."
bower install
if [ $? != 0 ]; then
exit_with_error "Cannot run 'npm install'."
fi
log_message "I" "OK."
log_message "I" ""
################################################
### Build the application.
################################################
log_message "I" "Build the application."
grunt build --env=${BUILD_BY_ENV}
if [ $? != 0 ]; then
exit_with_error "Cannot run 'grunt build --env=${BUILD_BY_ENV}'."
fi
log_message "I" "OK."
log_message "I" ""
log_message "I" ""
log_message "I" "Done."
log_message "I" ""