63 lines
1.7 KiB
Bash
Executable File
63 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Add code for field in a controller
|
|
#
|
|
#
|
|
# Usage:
|
|
#
|
|
# ./add-fields.sh [controller file] [field type] [field name]
|
|
#
|
|
#
|
|
# Example:
|
|
#
|
|
# ./add-fields.sh klimatologia4/web/modules/custom/src/Nodes.php string manager
|
|
#
|
|
|
|
C="\e[0;36m"
|
|
R="\e[0;31m"
|
|
G="\e[0;32m"
|
|
B="\e[0;34m"
|
|
W="\e[0;97m"
|
|
E="\e[00m"
|
|
|
|
APP_DIR="/root/dev"
|
|
|
|
# CHECK 3 parameters
|
|
[ $# -ne 3 ] && echo "I expect 3 parameters, I've got ${#}." && exit
|
|
|
|
# CHECK controller file
|
|
CONTROLLER_FILE="${1}"
|
|
[ ! -f ${CONTROLLER_FILE} ] && echo -e "Controller file ${CONTROLLER_FILE} does not exist" && exit
|
|
|
|
# CHECK source files
|
|
FIELD_TYPE="${2}"
|
|
FIELD_CODE_DIR="${APP_DIR}/endpoints/endpoint_get_fields/"
|
|
ls -1 $FIELD_CODE_DIR | grep -E "${FIELD_TYPE}-(extractor|response|splitter)" > /dev/null
|
|
[ "$?" -ne 0 ] && echo -e "File for field ${R}${FIELD_TYPE}${E} not found"
|
|
|
|
# Field name
|
|
FIELD_NAME="${3}"
|
|
|
|
#
|
|
# Add source to destination
|
|
#
|
|
for SRC_FILE in `ls -1 $FIELD_CODE_DIR | grep -E "^${FIELD_TYPE}-(extractor|response|splitter)"`; do
|
|
ADDING_MARK=$(echo ${SRC_FILE} | awk -F- '{print "// AUTO_ADD_CODE_BELLOW_"$2}')
|
|
NEW_CODE=$(cat ${FIELD_CODE_DIR}/${SRC_FILE} | sed -e "s/FFFFF/${FIELD_NAME}/g")
|
|
MARK_LINE=$(grep -n "$ADDING_MARK" "$CONTROLLER_FILE" | cut -d ":" -f 1)
|
|
INSERT_LINE=$((${MARK_LINE} + 1))
|
|
|
|
echo -e " 📦 ${W}SOURCE :${E} ${SRC_FILE}"
|
|
echo -e " 📦 ${W}DESTINATION :${E} $(basename ${CONTROLLER_FILE})"
|
|
echo -e " 🏁 ${W}ADDING_MARK :${E} ${ADDING_MARK}"
|
|
echo -e " 🏁 ${W}INSERT LINE :${E} ${INSERT_LINE}"
|
|
echo -e " 🧩 ${W}CODE :${E}"
|
|
echo -e "${G}${NEW_CODE}${E}"
|
|
|
|
awk -v insert="${INSERT_LINE}" -v text="${NEW_CODE}" 'NR == insert {print text} {print}' "$CONTROLLER_FILE" > tmpfile && mv tmpfile "$CONTROLLER_FILE"
|
|
|
|
echo
|
|
done
|
|
|