93 lines
2.6 KiB
Bash
Executable File
93 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
usage() {
|
|
echo "Usage : r3 <task> <container>"
|
|
}
|
|
|
|
cleanup() {
|
|
|
|
LAST_ERROR=$?
|
|
|
|
if [ "${LAST_ERROR}" = 1 ] ;
|
|
then
|
|
usage
|
|
fi
|
|
|
|
if [ "${LAST_ERROR}" = 2 ] ;
|
|
then
|
|
echo "You do not appear to have a proper install path - please navigate to the r3-cloud folder and run './install.sh --full'"
|
|
fi
|
|
|
|
if [ "${LAST_ERROR}" = 3 ] ;
|
|
then
|
|
echo "You do not appear to have a proper lib path - did you clone the project correctly?"
|
|
fi
|
|
|
|
|
|
cd "${CWD}" 2>&1 || exit
|
|
}
|
|
|
|
R3_INSTALL_PATH=/usr/share/cybafelo/r3/r3-cloud
|
|
R3_V2_LIB_PATH=r3-libs/r3-v2/
|
|
R3_V2_SRC_PATH=/r3-libs/r3-v2/src
|
|
|
|
R3_FOLDER="${R3_INSTALL_PATH}${R3_V2_SRC_PATH}/r3/"
|
|
TEMPLATE_FOLDER="${R3_INSTALL_PATH}${R3_V2_SRC_PATH}/templates/"
|
|
|
|
CWD=$(pwd)
|
|
|
|
TASK=$1
|
|
ARG1=$2
|
|
ARG2=$3
|
|
ARG3=$4
|
|
ARG4=$5
|
|
ARG5=$6
|
|
|
|
trap cleanup EXIT
|
|
|
|
cd "${R3_INSTALL_PATH}" 2>&1 || exit 2
|
|
|
|
if [ "${TASK}" = 'create' ];
|
|
then
|
|
CLASS_NAME=$ARG1
|
|
TEMPLATE="${ARG2}.template"
|
|
EXTEND_CLASS="${ARG3}"
|
|
EXTEND_CLASS_FILE_NAME="r3$(echo "${EXTEND_CLASS}" | sed 's/\([A-Z]\)/-\1/g' | awk '{print tolower($0)}').js"
|
|
FILE_NAME="r3$(echo "${CLASS_NAME}" | sed 's/\([A-Z]\)/-\1/g' | awk '{print tolower($0)}').js"
|
|
|
|
echo "${CLASS_NAME}"
|
|
echo "${TEMPLATE}"
|
|
echo "${EXTEND_CLASS}"
|
|
echo "${FILE_NAME}"
|
|
|
|
cp "${TEMPLATE_FOLDER}${TEMPLATE}" "${R3_FOLDER}${FILE_NAME}"
|
|
|
|
sed -i "s/CLASS_NAME/${CLASS_NAME}/g" "${R3_FOLDER}${FILE_NAME}"
|
|
sed -i "s/EXTEND_CLASS_FILE_NAME/${EXTEND_CLASS_FILE_NAME}/g" "${R3_FOLDER}${FILE_NAME}"
|
|
sed -i "s/EXTEND_CLASS/${EXTEND_CLASS}/g" "${R3_FOLDER}${FILE_NAME}"
|
|
|
|
CONTENTS=$(cat "${TEMPLATE_FOLDER}create_instance_before.template")
|
|
perl -i -pe "BEGIN{undef $/;} s/\/\/CREATE_INSTANCE_BEFORE_START.*\/\/CREATE_INSTANCE_BEFORE_END/\/\/CREATE_INSTANCE_BEFORE_START\n${CONTENTS}\n\t\t\/\/CREATE_INSTANCE_BEFORE_END/smg" "${R3_FOLDER}${FILE_NAME}"
|
|
|
|
CONTENTS=$(cat "${TEMPLATE_FOLDER}create_instance_after.template")
|
|
perl -i -pe "BEGIN{undef $/;} s/\/\/CREATE_INSTANCE_AFTER_START.*\/\/CREATE_INSTANCE_AFTER_END/\/\/CREATE_INSTANCE_AFTER_START\n${CONTENTS}\n\t\t\/\/CREATE_INSTANCE_AFTER_END/smg" "${R3_FOLDER}${FILE_NAME}"
|
|
|
|
echo "Created class ${R3_FOLDER}${FILE_NAME}"
|
|
|
|
cd "${R3_V2_LIB_PATH}" 2>&1 || exit 3
|
|
|
|
./build_events.php
|
|
|
|
cd - 2>&1 || exit 3
|
|
|
|
set -o xtrace
|
|
|
|
CONTENTS=$(cat "${R3_FOLDER}events-generated")
|
|
perl -i -pe "BEGIN{undef $/;} s/\/\/EVENT_GENERATED_START.*\/\/EVENT_GENERATED_END/\/\/EVENT_GENERATED_START\n${CONTENTS}\n\/\/EVENT_GENERATED_END/smg" "${R3_FOLDER}r3-event.js"
|
|
rm "${R3_FOLDER}events-generated"
|
|
|
|
exit 0
|
|
fi
|
|
|
|
# shellcheck disable=SC2086
|
|
docker-compose $TASK $ARG1 $ARG2 $ARG3 $ARG4 $ARG5 |