commit a492d0dae17e710ce56012b235adaab05114bbd0
parent 54619d995cc2a478a20ad25a4826ef41e310802c
Author: kyle <kyle@getaddrinfo.net>
Date: Wed, 28 Oct 2015 00:37:27 -0600
gen_enums: commit wip
Diffstat:
M | gen_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