| #!/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" "" |