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:
M | gen_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