dockerized libs and can create components with templates

master
Theunis J. Botha 2021-06-18 13:54:33 +02:00
parent 3becc75ef6
commit 6dc3fb6964
5 changed files with 198 additions and 1 deletions

View File

@ -0,0 +1,24 @@
version: '3'
services:
r3:
container_name: ${R3_CONTAINER}
image: ${R3_IMAGE}
build:
dockerfile: ${DOCKERFILE}
context: ${R3_CONTEXT}
args:
- NPM_TOKEN=${NPM_TOKEN}
volumes:
- ${R3_CONTEXT}/src:/app/src
- ${R3_CONTEXT}/test:/app/test
- ${R3_CONTEXT}/dist:/app/dist
- ${R3_CONTEXT}/gulpfile.js:/app/gulpfile.js
- ${R3_CONTEXT}/webpack.config.js:/app/webpack.config.js
networks:
- r3_network
command: "start"
restart: unless-stopped
networks:
r3_network:
name: ${R3_NETWORK_DOMAIN}
external: true

View File

@ -0,0 +1,73 @@
usage() {
echo "Usage : ./install.sh <flag>"
echo ""
echo "Where <flag> is one of the following"
echo ""
echo " --full : Do a full install"
echo " --system : Install into system"
echo ""
echo "greetings from -=<yb4f310 ..."
}
cleanup() {
LAST_ERROR=$?
if [ "${LAST_ERROR}" = 1 ] ;
then
usage
fi
}
trap cleanup EXIT
FLAG=$1
BIN_INSTALL_PATH=/usr/local/bin/r3
COMPLETION_INSTALL_PATH=/etc/bash_completion.d/r3-completion.bash
if [ "${FLAG}" != '--full' ] && \
[ "${FLAG}" != '--system' ];
then
exit 1;
fi
if [ "${FLAG}" = '--full' ] || [ "${FLAG}" = '--system' ];
then
echo "installing r3.sh into system"
echo "updating r3.sh"
sed -i "/^R3_INSTALL_PATH=/s/R3_INSTALL_PATH\=.*/R3_INSTALL_PATH=$(printf %q $(pwd) | sed -E 's/([+,/,@])/\\\1/g')/" r3.sh
echo "updating r3-completion.bash"
sed -i "/^R3_INSTALL_PATH=/s/R3_INSTALL_PATH\=.*/R3_INSTALL_PATH=$(printf %q $(pwd) | sed -E 's/([+,/,@])/\\\1/g')/" r3-completion.bash
echo "r3 install path set to ${PWD}"
if [ -L "${BIN_INSTALL_PATH}" ] ;
then
echo "r3 was already installed to ${BIN_INSTALL_PATH}"
else
echo "r3 was not found at ${BIN_INSTALL_PATH} - installing now"
sudo ln -s "${PWD}/"r3.sh "${BIN_INSTALL_PATH}"
echo "successfully installed r3 at ${BIN_INSTALL_PATH}"
fi
if [ -L "${COMPLETION_INSTALL_PATH}" ] ;
then
echo "r3-completion.bash was already installed to ${COMPLETION_INSTALL_PATH}"
else
echo "r3-completion.bash was not found at ${COMPLETION_INSTALL_PATH} - installing now"
sudo ln -s "${PWD}/"r3-completion.bash "${COMPLETION_INSTALL_PATH}"
echo "successfully installed r3-completion.bash at ${COMPLETION_INSTALL_PATH}"
fi
if [ "${FLAG}" = '--system' ] ;
then
exit 0
fi
fi

View File

@ -0,0 +1,24 @@
#!/usr/bin/env bash
R3_INSTALL_PATH=/usr/share/cybafelo/r3/r3-cloud
r3_completions() {
# TASK=${#COMP_WORDS[1]}
if [ "${#COMP_WORDS[@]}" == "2" ]; then
COMPREPLY=($(compgen -W "create" "${COMP_WORDS[1]}"))
fi
if [ "${#COMP_WORDS[@]}" == "4" ]; then
COMPREPLY=($(compgen -W "extends" "${COMP_WORDS[3]}"))
fi
if [ "${#COMP_WORDS[@]}" == "5" ]; then
local classes=$(grep "^class" "${R3_INSTALL_PATH}"/r3-libs/r3-v2/src/r3/*.js | perl -pe "s/.*class\s*(\w.*?)\s.*/\1/" | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/ /g')
COMPREPLY=($(compgen -W "${classes}" "${COMP_WORDS[4]}"))
fi
}
complete -F r3_completions r3

@ -1 +1 @@
Subproject commit 537725a21b4a349cc0cd7115cd497af2e8f2f487
Subproject commit fd04d04973ab6495cf5bffb4225a25ccbef669a4

76
r3.sh
View File

@ -0,0 +1,76 @@
#!/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