#!/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 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