#!/usr/bin/env bash
echo 'Building Bundle '
echo $PWD
cd ..
cd bundle
BUNDLE_HOME=$PWD
cd ..
cd ..
PROJECT_HOME=$PWD
JOBS_HOME=${PROJECT_HOME}"/c2net-cpl-paas4man-jex-jobs-code"
MARIADB_HOME=${PROJECT_HOME}"/c2net-cpl-paas4man-dst-mariadbwrapper-code"
TASK_HOME=${PROJECT_HOME}"/c2net-cpl-paas4man-jex-taskexecutor-code"
JOBEX_FE_HOME=${BUNDLE_HOME}"/components/jobexfe"
echo 'BUNDLE_HOME:' ${BUNDLE_HOME}
echo 'PROJECT_HOME:' ${PROJECT_HOME}
echo 'JOBS_HOME:' ${JOBS_HOME}
echo 'TASK_HOME:' ${TASK_HOME}
echo 'MARIADB_HOME:' ${MARIADB_HOME}
echo 'JOBEX_FE_HOME:' ${JOBEX_FE_HOME}
JOBS_GEN=true
TASK_GEN=true
MARIADB_GEN=true
JOBEX_FE_GEN=true
ZIP_GEN=true
REMOVE_COPIES=true
echo '----------------------------'
echo '1 Jobs Component'
echo '----------------------------'
# echo 'compiling...'
# cd ${JOBS_HOME}'/code/src'
#
# cd ${BUNDLE_HOME}
rm -rf ${BUNDLE_HOME}/components/jobs
mkdir ${BUNDLE_HOME}/components/jobs
mkdir ${BUNDLE_HOME}/components/jobs/code
mkdir ${BUNDLE_HOME}/components/jobs/code/src
echo 'job component manifest...'
cp -fr ${JOBS_HOME}/Manifest.json ${BUNDLE_HOME}/components/jobs/.
echo 'job blob manifest...'
cp -fr ${JOBS_HOME}/code/Manifest.json ${BUNDLE_HOME}/components/jobs/code/.
echo 'job package.json...'
cp -fr ${JOBS_HOME}/code/src/package.json ${BUNDLE_HOME}/components/jobs/code/src/.
echo 'job src folder...'
cp -fr ${JOBS_HOME}/code/src/src ${BUNDLE_HOME}/components/jobs/code/src/.
if ${JOBS_GEN}
then
echo 'compiling...'
cd ${BUNDLE_HOME}/components/jobs/code/src/
rm -rf ./node_modules
docker run --rm --dns=192.168.0.11 -v $(pwd):/tmp/component c2netproject.eu/runtime/java/dev:1_0_0 -c 'cd /tmp/component && npm install'
echo 'compilation done!'
fi
echo 'Jobs Component DONE!'
echo '----------------------------'
echo '2 Task Executor Component'
echo '----------------------------'
# cd ${TASK_HOME}'/code/src'
# rm -rf ./node_modules
rm -rf ${BUNDLE_HOME}/components/taskexecutor
mkdir ${BUNDLE_HOME}/components/taskexecutor
mkdir ${BUNDLE_HOME}/components/taskexecutor/code
mkdir ${BUNDLE_HOME}/components/taskexecutor/code/src
mkdir ${BUNDLE_HOME}/components/taskexecutor/code/src/src
mkdir ${BUNDLE_HOME}/components/taskexecutor/code/src/julia
mkdir ${BUNDLE_HOME}/components/taskexecutor/code/src/julia/algorithms
#
mkdir ${BUNDLE_HOME}/components/taskexecutor/code/src/julia/lib
mkdir ${BUNDLE_HOME}/components/taskexecutor/code/src/julia/libmariadb
echo 'folders created'
cp -fr ${TASK_HOME}/Manifest.json ${BUNDLE_HOME}/components/taskexecutor/. > log.txt
echo 'component manifest copied'
cp -fr ${TASK_HOME}/code/Manifest.json ${BUNDLE_HOME}/components/taskexecutor/code/. > log.txt
echo 'blob manifest copied'
cp -fr ${TASK_HOME}/code/src/package.json ${BUNDLE_HOME}/components/taskexecutor/code/src/. > log.txt
echo 'package.json copied'
cp -fr ${TASK_HOME}/code/src/src ${BUNDLE_HOME}/components/taskexecutor/code/src/. > log.txt
echo 'src folder copied'
#echo 'decompresing package...'
#mkdir ./node_modules/drivers > log.txt
#
#dpkg -x ${SOURCE}/code/drivers/libmariadb2_2.0.0-1_amd64.deb ./node_modules/drivers/libmariadb
#
#echo 'copying libmariadb ibraries...'
#cp ./node_modules/drivers/libmariadb/usr/lib/x86_64-linux-gnu/libmariadb.so.2 ./components/taskexecutor/code/drivers/.
cp -fr ${TASK_HOME}/code/src/julia/libmariadb/* ${BUNDLE_HOME}/components/taskexecutor/code/src/julia/libmariadb/ > log.txt
echo 'MariaDB driver copied'
cp -fr ${TASK_HOME}/code/src/julia/lib/* ${BUNDLE_HOME}/components/taskexecutor/code/src/julia/lib/ > log.txt
echo 'Julia libraries copied'
cp -fr ${TASK_HOME}/code/src/julia/algorithms/. ${BUNDLE_HOME}/components/taskexecutor/code/src/julia/algorithms/. > log.txt
echo 'Test Algorithms to Task Executor included'
if ${TASK_GEN}
then
echo 'compiling...'
cd ${BUNDLE_HOME}/components/taskexecutor/code/src/
rm -rf ./node_modules
docker run --rm --dns=192.168.0.11 -v $(pwd):/tmp/component c2netproject.eu/runtime/java/dev:1_0_0 -c 'cd /tmp/component && npm install'
# docker run --rm --dns=192.168.0.11 -v $(pwd):/tmp/component eslap.cloud/runtime/native:1_1_0 -c 'cd /tmp/component && npm install'
echo 'compilation done!'
fi
echo 'Task Executor Component DONE!'
echo '----------------------------'
echo '4 MariaDB Wrapper Component'
echo '----------------------------'
cd ${BUNDLE_HOME}
rm -rf ${BUNDLE_HOME}/components/mariadbw
mkdir ${BUNDLE_HOME}/components/mariadbw
mkdir ${BUNDLE_HOME}/components/mariadbw/code
mkdir ${BUNDLE_HOME}/components/mariadbw/code/src
#
echo 'job component manifest...'
cp -fr ${MARIADB_HOME}/Manifest.json ${BUNDLE_HOME}/components/mariadbw/.
#
echo 'job blob manifest...'
cp -fr ${MARIADB_HOME}/code/Manifest.json ${BUNDLE_HOME}/components/mariadbw/code/.
#
echo 'job package.json...'
cp -fr ${MARIADB_HOME}/code/src/package.json ${BUNDLE_HOME}/components/mariadbw/code/src/.
#
echo 'job src folder...'
cp -fr ${MARIADB_HOME}/code/src/src ${BUNDLE_HOME}/components/mariadbw/code/src/.
echo 'copying SQL script to src...'
cp ${TASK_HOME}/code/src/julia/algorithms/AH_MCU_S_MRP_1/C2_without_STables/S_MRP_A_20161115121402.sql ${MARIADB_HOME}/code/src/src
# cp ${TASK_HOME}/code/src/julia/algorithms/AH_MCU_S_MRP_1/C2_without_STables/01_C2_STables_Create_CamelCase.sql ${MARIADB_HOME}/code/src/src
# cp ${TASK_HOME}/code/src/julia/algorithms/AH_MCU_S_MRP_1/C2_without_STables/02_C2_STables_Insert.sql ${MARIADB_HOME}/code/src/src
# cp ${TASK_HOME}/code/src/julia/algorithms/AH_MCU_S_MRP_1/C2_without_STables/03_C2_PTable_Create.sql ${MARIADB_HOME}/code/src/src
# cp ${TASK_HOME}/code/src/julia/algorithms/AH_MCU_S_MRP_1/C2_without_STables/04_C2_PTable_Insert.sql ${MARIADB_HOME}/code/src/src
echo 'MariaDB Wrapper Component DONE!'
if ${MARIADB_GEN}
then
echo 'compiling...'
echo 'done!'
cd ${BUNDLE_HOME}/components/mariadbw/code/src/
rm -rf ./node_modules
docker run --rm --dns=192.168.0.11 --entrypoint=bash -v $(pwd):/tmp/component eslap.cloud/runtime/mariadb:1_0_0 -c 'cd /tmp/component && npm install'
echo 'compilation done!'
fi
echo '----------------------------'
echo '4 jobexfe Module Component'
echo '----------------------------'
if ${JOBEX_FE_GEN}
then
echo 'compiling...'
cd ${JOBEX_FE_HOME}'/code/src'
rm -rf ./node_modules
docker run --rm --dns=192.168.0.11 -v $(pwd):/tmp/component c2netproject.eu/runtime/java/dev:1_0_0 -c 'cd /tmp/component && npm install'
echo 'compilation done!'
fi
echo 'Module FE DONE!'
if ${ZIP_GEN}
then
cd ${BUNDLE_HOME}
# chown -R ${USER}:${USER} .*
rm service_bundle.zip
cd ${BUNDLE_HOME}
echo 'Building bundle...'
echo 'zipping..'
zip -qr service_bundle ./components ./service/Manifest.json ./deployment/Manifest.json
echo 'zipping DONE!'
ls -l ${BUNDLE_HOME}/*.zip
fi
if ${REMOVE_COPIES}
then
echo "removing old components.."
rm -rf ${BUNDLE_HOME}/components/jobs
rm -rf ${BUNDLE_HOME}/components/taskexecutor
rm -rf ${BUNDLE_HOME}/components/mariadbw
fi