dev/endpoints/add-fields.sh
2024-02-21 10:53:20 +02:00

52 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
#
# 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"
# CHECK 3 parameters
[ $# -ne 3 ] && echo 'Parameter missing. All I got is: ' && exit
# CHECK target file
DST_FILE="${1}"
[ ! -f ${DSTS_FILE} ] && echo 'File ${DSTS_FILE} does not exist' && exit
# CHECK source files
TYPE="${2}"
FIELD_DIR="/root/dev/endpoints/endpoint_get_fields/"
ls -1 $FIELD_DIR | grep -E "${TYPE}-(extractor|response|splitter)" > /dev/null
[ "$?" -ne 0 ] && echo -e "File for field ${R}${TYPE}${E} not found"
NAME="${3}"
#
# Add source to destination
#
for SRC_FILE in `ls -1 $FIELD_DIR | grep -E "^${TYPE}-(extractor|response|splitter)"`; do
COMMENT=$(echo ${SRC_FILE} | awk -F- '{print "// AUTO_ADD_CODE_BELLOW_"$2}')
NEW_CODE=$(cat ${FIELD_DIR}/${SRC_FILE} | sed -e "s/FFFFF/${NAME}/g")
COMMENT_LINE=$(grep -n "$COMMENT" "$DST_FILE" | cut -d ":" -f 1)
INSERT_LINE=$((${COMMENT_LINE} + 1))
echo -e " 📦 ${W}SOURCE :${E} ${SRC_FILE}"
echo -e " 📦 ${W}DESTGINATION :${E} $(basename ${DST_FILE})"
echo -e " 🏁 ${W}AFTER COMMENT :${E} ${COMMENT}"
echo -e " 🏁 ${W}INSERT LINE :${E} ${INSERT_LINE}"
echo -e " 🧩 ${W}CODE :${E} ${NEW_CODE}"
awk -v insert="${INSERT_LINE}" -v text="${NEW_CODE}" 'NR == insert {print text} {print}' "$DST_FILE" > tmpfile && mv tmpfile "$DST_FILE"
echo
done