#!/usr/bin/env bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

eval EXEC_DEMO=true
eval NAME_PKG=''
eval SAVE_OPT=false
eval SAVE_DEV_OPT=false

show_help() {
    echo "Usage: npm-clean.sh"
    echo "--save"
    echo "--save-dev"
    echo "-sd or -skipDemo skip the clean of the demo folder of any components"
}

eval projects=( "ng2-activiti-diagrams"
      "ng2-activiti-analytics"
      "ng2-activiti-form"
      "ng2-activiti-processlist"
      "ng2-activiti-tasklist"
      "ng2-alfresco-core"
      "ng2-alfresco-datatable"
      "ng2-alfresco-documentlist"
      "ng2-alfresco-login"
      "ng2-alfresco-search"
      "ng2-alfresco-social"
      "ng2-alfresco-tag"
      "ng2-alfresco-social"
      "ng2-alfresco-upload"
      "ng2-alfresco-viewer"
      "ng2-alfresco-webscript"
      "ng2-alfresco-userinfo" )

clea_demo() {
    EXEC_DEMO=false
}

save(){
    NAME_PKG=$1
    SAVE_OPT=true
}

save_dev(){
    NAME_PKG=$1
    SAVE_DEV_OPT=true
}

while [[ $1  == -* ]]; do
    case "$1" in
      -h|--help|-\?) show_help; exit 0;;
      --save)  save $2; shift 2;;
      --save-dev)  save_dev $2; shift 2;;
      -sd|--skipDemo) clea_demo; shift;;
      -*) echo "invalid option: $1" 1>&2; show_help; exit 0;;
    esac
done

for PACKAGE in ${projects[@]}
do
    echo "====== install package ${NAME_PKG} in component ${PACKAGE} ====="
    cd "$DIR/../ng2-components/${PACKAGE}"

    if $SAVE_OPT == true; then
      npm install --save ${NAME_PKG}
    fi

    if $SAVE_DEV_OPT == true; then
     echo "======  npm install --save-dev ${NAME_PKG} ====="
      npm install --save-dev ${NAME_PKG}
    fi
done

cd "$DIR/../demo-shell-ng2"
if $SAVE_OPT == true; then
  npm install --save ${NAME_PKG}
fi

if $SAVE_DEV_OPT == true; then
  npm install --save-dev ${NAME_PKG}
fi


cd "$DIR/../ng2-components"

if $SAVE_OPT == true; then
  npm install --save ${NAME_PKG}
fi

if $SAVE_DEV_OPT == true; then
  npm install --save-dev ${NAME_PKG}
fi