aboutsummaryrefslogtreecommitdiff
path: root/kike-gen-replies.sh
diff options
context:
space:
mode:
authorPřemysl Janouch <p.janouch@gmail.com>2014-08-10 00:47:26 +0200
committerPřemysl Janouch <p.janouch@gmail.com>2014-08-10 00:47:26 +0200
commit126c07b70a7f3217845ffbdf2a001af355755d7c (patch)
tree18dd0b8caa0b2b7a46dcd2d1044a5b0f5393d065 /kike-gen-replies.sh
parentbd68e28b608fb74bb4823726b9f0bf6489ad94b5 (diff)
downloadxK-126c07b70a7f3217845ffbdf2a001af355755d7c.tar.gz
xK-126c07b70a7f3217845ffbdf2a001af355755d7c.tar.xz
xK-126c07b70a7f3217845ffbdf2a001af355755d7c.zip
kike: generate replies from a single text file
It became a bit difficult to maintain two separate lists. Besides, the inverse generation of a message catalog from source code was a bit strange.
Diffstat (limited to 'kike-gen-replies.sh')
-rwxr-xr-xkike-gen-replies.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/kike-gen-replies.sh b/kike-gen-replies.sh
new file mode 100755
index 0000000..7318608
--- /dev/null
+++ b/kike-gen-replies.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+LC_ALL=C exec awk '
+ BEGIN {
+ # The message catalog is a byproduct
+ msg = "kike.msg"
+ print "$quote \"" > msg;
+ print "$set 1" > msg;
+ }
+ /^[0-9]+ *IRC_(ERR|RPL)_[A-Z]+ *".*"$/ {
+ match($0, /".*"/);
+ ids[$1] = $2;
+ texts[$2] = substr($0, RSTART, RLENGTH);
+ print $1 " " texts[$2] > msg
+ }
+ END {
+ printf("enum\n{")
+ for (i in ids) {
+ if (seen_first)
+ printf(",")
+ seen_first = 1
+ printf("\n\t%s = %s", ids[i], i)
+ }
+ print "\n};\n"
+ print "static const char *g_default_replies[] =\n{"
+ for (i in ids)
+ print "\t[" ids[i] "] = " texts[ids[i]] ","
+ print "};"
+ }'