shlist

share and manage lists between multiple people
Log | Files | Refs

commit 85cc371258cf7b78f4a2cacb01e4bafd9211178d
parent a2d3ba9d9e86f88833fb3dccec61c58b58610d39
Author: kyle <kyle@getaddrinfo.net>
Date:   Wed, 18 Nov 2015 00:23:20 -0700

gen_enums: improve this script

- put objc, perl, java, and shell functionality into their own functions
- add a protocol version variable to generated msg files

Diffstat:
Mgen_enums.sh | 111+++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
1 file changed, 69 insertions(+), 42 deletions(-)

diff --git a/gen_enums.sh b/gen_enums.sh @@ -1,5 +1,6 @@ #!/bin/sh +PROTOCOL_VERSION=0 MSG_TYPES="new_device new_list add_friend @@ -15,62 +16,88 @@ PERL_PATH="MsgTypes.pm" JAVA_PATH="android/shlist/app/src/main/java/drsocto/shlist/MsgTypes.java" SHELL_PATH="tests/net_enums.sh" -WARN_HEADER="GENERaTED @ $(date) BY ${0}" +GENERATED_AT="generated @ `date`" -# Objective C message type header for ios -cat << EOF > $OBJC_PATH -/* ${WARN_HEADER} */" +gen_objc() { + # Objective C message type header for ios + cat << EOF > $OBJC_PATH +/* ${GENERATED_AT} */" +int protocol_version = $PROTOCOL_VERSION; enum MSG_TYPES { EOF - -# Java message enumerations for android -cat << EOF > $JAVA_PATH -/* ${WARN_HEADER} */ - + i=0 + for msg in $MSG_TYPES; do + echo -e "\t$msg = $i," >> $OBJC_PATH + i=$((i + 1)) + done + echo "};" >> $OBJC_PATH +} + +gen_java() { + # Java message enumerations for android + cat << EOF > $JAVA_PATH +/* ${GENERATED_AT} */ + +int protocol_version = $PROTOCOL_VERSION; public enum MsgTypes { EOF - -# Perl source file constants for the server and test suite -cat << EOF > $PERL_PATH + i=0 + for msg in $MSG_TYPES; do + echo -e "\t$msg\t(${i})," >> $JAVA_PATH + i=$((i + 1)) + done + echo "};" >> $JAVA_PATH +} + +gen_perl() { + # Perl source file constants for the server and test suite + cat << EOF > $PERL_PATH +# ${GENERATED_AT} package MsgTypes; -# ${WARN_HEADER} use strict; use warnings; use Exporter qw(import); -our @EXPORT = qw(%msgs); +our @EXPORT = qw(%msgs \$protocol_version); +our \$protocol_version = $PROTOCOL_VERSION; our %msgs = ( EOF - -# shell constants for test suite use -cat << EOF > $SHELL_PATH + i=0 + for msg in $MSG_TYPES; do + echo "\t$msg => $i," >> $PERL_PATH + echo "\t$i => \"$msg\"," >> $PERL_PATH + i=$((i + 1)) + done + echo ");" >> $PERL_PATH + + # echo "my @msg_handlers = (" >> $PERL_PATH + # i=0 + # for msg in $MSG_TYPES; do + # echo "\t\&msg_$msg," >> $PERL_PATH + + # i=$((i + 1)) + # done + # echo ");" >> $PERL_PATH +} + +gen_shell() { + # shell constants for test suite use + cat << EOF > $SHELL_PATH #!/bin/sh -# $WARN_HEADER +# $GENERATED_AT +PROTOCOL_VERSION=$PROTOCOL_VERSION EOF - -i=0 -for msg in $MSG_TYPES; do - echo -e "\t$msg = $i," >> $OBJC_PATH - echo -e "\t$msg\t(${i})," >> $JAVA_PATH - echo "\t$msg => $i," >> $PERL_PATH - echo "\t$i => \"$msg\"," >> $PERL_PATH - echo "export $msg=00$(printf "%02x" $i)" >> $SHELL_PATH - - i=$((i + 1)) -done - -echo "};" >> $OBJC_PATH -echo "};" >> $JAVA_PATH -echo ");" >> $PERL_PATH - -echo "my @msg_handlers = (" >> $PERL_PATH -i=0 -for msg in $MSG_TYPES; do - echo "\t\&msg_$msg," >> $PERL_PATH - - i=$((i + 1)) -done -echo ");" >> $PERL_PATH + i=0 + for msg in $MSG_TYPES; do + echo "export $msg=00$(printf "%02x" $i)" >> $SHELL_PATH + i=$((i + 1)) + done +} + +gen_objc +gen_java +gen_perl +gen_shell