summaryrefslogtreecommitdiffstats
path: root/scripts/createDefaultMapper/mapper.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/createDefaultMapper/mapper.sh')
-rwxr-xr-xscripts/createDefaultMapper/mapper.sh37
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/createDefaultMapper/mapper.sh b/scripts/createDefaultMapper/mapper.sh
new file mode 100755
index 0000000..43b1dc8
--- /dev/null
+++ b/scripts/createDefaultMapper/mapper.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+id=$(grep -c "getID" $1)
+
+modelname=$(basename $1 .php)
+modelmapper=${modelname}Mapper
+modelmapperfile=$(dirname $1)/${modelmapper}.php
+modelvar=$(echo "$modelname" | tr -s '[A-Z]' '[a-z]')
+setID="NULL"
+getID="NULL"
+if [ $id -eq 0 ]; then
+ echo "$1 enthält keinen Primärschlüssel"
+else
+getID="get$(echo "$modelvar" | sed -e "s/\([^\.]\+\)\./\u\1\./g" -e "s/^\(.\)/\u\1/")ID"
+setID="set$(echo "$modelvar" | sed -e "s/\([^\.]\+\)\./\u\1\./g" -e "s/^\(.\)/\u\1/")ID"
+fi
+cp mappertemplate ${modelmapperfile}
+
+savedata=$(grep "protected" $1 | awk -v SQ="\'" -F '_|;' '{
+ printf "," SQ $2 SQ "=> $MVAR->get";
+ split($2,a,""); a[1]=toupper(a[1]);
+ for(i=1; i<=length($2); i++){printf a[i]};
+ printf "() "}')
+
+find=$(grep "protected" $1 | awk -F '_|;' '{
+ printf "->set"; split($2,a,"");
+ a[1]=toupper(a[1]);
+ for(i=1; i<=length($2); i++){printf a[i]};
+ printf "($row->%s)", $2}')
+
+sed -i "s/SAVEDATA/${savedata}/g" ${modelmapperfile}
+sed -i "s/FIND/${find}/g" ${modelmapperfile}
+sed -i "s/${getID}/getID/g" ${modelmapperfile}
+sed -i "s/${setID}/setID/g" ${modelmapperfile}
+sed -i "s/array(,/array(/g" ${modelmapperfile}
+sed -i "s/MODEL/${modelname}/g" ${modelmapperfile}
+sed -i "s/MVAR/${modelvar}/g" ${modelmapperfile}
+sed -i "s/MAPPER/${modelmapper}/g" ${modelmapperfile}