2021-06-18 13:54:33 +02:00
|
|
|
#!/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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cd "${CWD}" 2>&1 || exit
|
|
|
|
}
|
|
|
|
|
|
|
|
R3_INSTALL_PATH=/usr/share/cybafelo/r3/r3-cloud
|
|
|
|
R3_V2_LIB_PATH=/r3-libs/r3-v2/src
|
|
|
|
|
|
|
|
R3_FOLDER="${R3_INSTALL_PATH}${R3_V2_LIB_PATH}/r3/"
|
|
|
|
TEMPLATE_FOLDER="${R3_INSTALL_PATH}${R3_V2_LIB_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}"
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
docker-compose $TASK $ARG1 $ARG2 $ARG3 $ARG4 $ARG5
|