#!/bin/bash
#--------------------------------------------------------------------------------
# 需要配置的路径
#--------------------------------------------------------------------------------

# 源码工程地址
UI_PROJECT_PATH="/d/WORKSPACE/ng7-farris-ui";

# 打包工程地址
BUILD_PROJECT_PATH="/d/WORKSPACE/farris-build-scaffold";

# 服务器根目录
SERVER_ROOT_PATH="/c/igix";

# 元数据projects根目录
PROJECTS_PATH="/c/projects"

#--------------------------------------------------------------------------------
# 计算出来的路径
#--------------------------------------------------------------------------------

BUILD_FARRIS_NPM_PATH="${BUILD_PROJECT_PATH}/node_modules/@farris";
BUILD_FARIS_DIST_PATH="${BUILD_PROJECT_PATH}/dist-rollup/platform/common/web/@farris"
SERVER_FARRIS_PATH="${SERVER_ROOT_PATH}/web/platform/common/web/@farris"
PROJECTS_FARRIS_NPM_PATH="${PROJECTS_PATH}/node_modules/@farris";

build(){
    echo '--------------------Dynamic Form Begin--------------------';
    cd $UI_PROJECT_PATH;
    ng build dynamic-control-group;

    echo '--------------------Copy Query Conditon node_modules Begin--------------------';
    cp -rpf $UI_PROJECT_PATH/dist/@farris/dynamic-control-group $BUILD_FARRIS_NPM_PATH;
    cp -rpf $UI_PROJECT_PATH/dist/@farris/dynamic-control-group $PROJECTS_FARRIS_NPM_PATH;
    echo '--------------------Copy Query Conditon node_modules End--------------------';

    echo '--------------------Dynamic Form End--------------------';

    echo '--------------------Build Scaffold Begin--------------------';
    cd $BUILD_PROJECT_PATH;
    if [ $1 = "dev" ]
    then
      npm run build-dev third-parts;
    fi
    if [ $1 = "prod" ]
    then
      npm run build-prod third-parts;
    fi
    cp $BUILD_FARIS_DIST_PATH/dynamic-control-group/farris-dynamic-control-group.ngfactory.js $SERVER_FARRIS_PATH/dynamic-control-group;
    cp $BUILD_FARIS_DIST_PATH/dynamic-control-group.js $SERVER_FARRIS_PATH;
    echo '--------------------Build Scaffold End--------------------';
}

publish(){
    #get -- "version" : "0.1.x",
    PREVIOUS_VERSION_STR=$(cat $UI_PROJECT_PATH/projects/dynamic-control-group/package.json | grep version)
    #get -- x",
    PREVIOUS_VERSION_STR_TMP=${PREVIOUS_VERSION_STR#*0.1.}
    #get x + 1
    VERSION_STR=$(expr ${PREVIOUS_VERSION_STR_TMP%\"*} + 1)
    sed -i "s/\"version\": \".*\"/\"version\": \"0.1.${VERSION_STR}\"/g" "$UI_PROJECT_PATH/projects/dynamic-control-group/package.json"
    sed -i "s/\"version\": \".*\"/\"version\": \"0.1.${VERSION_STR}\"/g" "$UI_PROJECT_PATH/dist/@farris/dynamic-control-group/package.json"
    cd $UI_PROJECT_PATH/dist/@farris/dynamic-control-group
    npm publish -access=public -tag=latest
}

patch(){
    echo '--------------------Create Patches Begin--------------------';
    PATCH_PATH="/c/Users/Max/Desktop/patch-home/app/web/platform/common/web/@farris"
    if [ "$1" = "new" ]
    then
      rm -rf /c/Users/Max/Desktop/patch-home/app/web/platform/common/web
    fi
    cd /c/Users/Max/Desktop/patch-home
    mkdir -pv app/web/platform/common/web/@farris/dynamic-control-group
    cp $BUILD_FARIS_DIST_PATH/dynamic-control-group/farris-dynamic-control-group.ngfactory.js $PATCH_PATH/dynamic-control-group;
    cp $BUILD_FARIS_DIST_PATH/dynamic-control-group.js $PATCH_PATH;

    # cp $PATCH_PATH/dynamic-control-group/farris-dynamic-control-group.ngfactory.js //10.24.13.112/c/2003Buildfinal/igix_2003_x86_64_build20200403_rc4/web/platform/common/web/@farris/dynamic-control-group
    # cp $PATCH_PATH/dynamic-control-group.js //10.24.13.112/c/2003Buildfinal/igix_2003_x86_64_build20200403_rc4/web/platform/common/web/@farris;
    # cp -rpf $UI_PROJECT_PATH/dist/@farris/dynamic-control-group //10.24.13.112/c/projects/node_modules/@farris
    echo '--------------------Create Patches End--------------------';
}

BUILD_PARAM=$1;
BUILD_PARAM=${BUILD_PARAM:="bd"}
if [ $BUILD_PARAM == "bd" ]
then
  echo '----------------only build start, Dev Mode---------------';
  build dev;
  echo '----------------only build start end, Dev Mode----------------';
elif [ $BUILD_PARAM == "publish" ]
then
  echo '----------------only publish start---------------';
  publish;
  echo '----------------only publish end, ready for npm install latest---------------';
elif [ $BUILD_PARAM == "bp" ]
then
  echo '----------------only build start, Production Mode---------------';
  build prod;
  echo '----------------only build start end, Production Mode---------------';
elif [ $BUILD_PARAM == "p" ]
then
  patch;
elif [ $BUILD_PARAM == "pn" ]
then
  patch new;
else
   echo "Parameter $BUILD_PARAM is not supported."
fi

