diff options
Diffstat (limited to 'help-from-md.awk')
-rwxr-xr-x | help-from-md.awk | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/help-from-md.awk b/help-from-md.awk new file mode 100755 index 0000000..1900797 --- /dev/null +++ b/help-from-md.awk @@ -0,0 +1,40 @@ +#!/usr/bin/awk -f + +# The caller must pass args: -v hfile=help-NAME.h NAME.NUM.md + +BEGIN { + heading = "/* DO NOT EDIT THIS FILE! It is auto-generated from the option list in " ARGV[1] "! */" + findcomment = hfile + sub("\\.", "\\.", findcomment) + findcomment = "\\[comment\\].*" findcomment + backtick_cnt = 0 + prints = "" +} + +/^```/ { + backtick_cnt++ + next +} + +foundcomment { + if (backtick_cnt > 1) exit + if (backtick_cnt == 1) { + gsub(/"/, "\\\"") + prints = prints "\n rprintf(F,\"" $0 "\\n\");" + } + next +} + +$0 ~ findcomment { + foundcomment = 1 + backtick_cnt = 0 +} + +END { + if (foundcomment && backtick_cnt > 1) + print heading "\n" prints > hfile + else { + print "Failed to find " hfile " section in " ARGV[1] + exit 1 + } +} |