shlist

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

commit a492d0dae17e710ce56012b235adaab05114bbd0
parent 54619d995cc2a478a20ad25a4826ef41e310802c
Author: kyle <kyle@getaddrinfo.net>
Date:   Wed, 28 Oct 2015 00:37:27 -0600

gen_enums: commit wip

Diffstat:
Mgen_enums.sh | 90++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------
1 file changed, 55 insertions(+), 35 deletions(-)

diff --git a/gen_enums.sh b/gen_enums.sh @@ -1,56 +1,76 @@ #!/bin/sh -MSG_TYPES="msg_new_device msg_new_list msg_update_friends msg_list_request" -MSG_TYPES="${MSG_TYPES} msg_join_list msg_leave_list msg_list_items" -MSG_TYPES="${MSG_TYPES} msg_new_list_item" - -WARN_HEADER="GENERaTED @ $(date) BY ${0}" +MSG_TYPES="new_device + new_list + add_friend + list_request + join_list + leave_list + list_items + new_list_item + ok" OBJC_PATH="ios/shlist/MsgTypes.h" -PERL_PATH="msg_types.pl" +PERL_PATH="MsgTypes.pm" JAVA_PATH="android/shlist/app/src/main/java/drsocto/shlist/MsgTypes.java" -TEST_PATH="tests/net_enums.sh" +SHELL_PATH="tests/net_enums.sh" + +WARN_HEADER="GENERaTED @ $(date) BY ${0}" # Objective C message type header for ios -echo "/* ${WARN_HEADER} */" > $OBJC_PATH -echo "" >> $OBJC_PATH -echo "enum MSG_TYPES {" >> $OBJC_PATH -i=0 -for msg in $MSG_TYPES; do - echo -e "\t$msg = $i," >> $OBJC_PATH - i=$((i + 1)) -done -echo "};" >> $OBJC_PATH +cat << EOF > $OBJC_PATH +/* ${WARN_HEADER} */" -# Perl source file constants for the server -echo "#!/usr/bin/env perl -w" > $PERL_PATH -echo "# ${WARN_HEADER}" >> $PERL_PATH -echo "" >> $PERL_PATH -echo "my @msg_handlers = (" >> $PERL_PATH -for msg in $MSG_TYPES; do - echo "\t\\&$msg," >> $PERL_PATH -done -echo ");" >> $PERL_PATH +enum MSG_TYPES { +EOF # Java message enumerations for android -echo "/* ${WARN_HEADER} */ " > $JAVA_PATH -echo "" >> $JAVA_PATH -echo "public enum MsgTypes {" >> $JAVA_PATH +cat << EOF > $JAVA_PATH +/* ${WARN_HEADER} */ + +public enum MsgTypes { +EOF + +# Perl source file constants for the server and test suite +cat << EOF > $PERL_PATH +package MsgTypes; +# ${WARN_HEADER} +use strict; +use warnings; + +use Exporter qw(import); +our @EXPORT = qw(%msgs); + +our %msgs = ( +EOF + +# shell constants for test suite use +cat << EOF > $SHELL_PATH +#!/bin/sh +# $WARN_HEADER + +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 "};" >> $JAVA_PATH -# shell constants for test suite use -echo "#!/bin/sh" > $TEST_PATH -echo "# $WARN_HEADER" >> $TEST_PATH -echo "" >> $TEST_PATH +echo "};" >> $OBJC_PATH +echo "};" >> $JAVA_PATH +echo ");" >> $PERL_PATH +echo "my @msg_handlers = (" >> $PERL_PATH i=0 for msg in $MSG_TYPES; do - hex_bytes=$(printf "%02x" $i) - echo "export $msg=00$hex_bytes" >> $TEST_PATH + echo "\t\&msg_$msg," >> $PERL_PATH + i=$((i + 1)) done +echo ");" >> $PERL_PATH