#!/usr/bin/env bash usage() { echo "Usage : r3 " } 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