summaryrefslogtreecommitdiff
path: root/define-from-md.awk
diff options
context:
space:
mode:
authorWayne Davison <wayne@opencoder.net>2020-06-18 10:49:34 -0700
committerWayne Davison <wayne@opencoder.net>2020-06-18 11:20:57 -0700
commitb5e539fc5aa52b94608dbb976981930c03213a78 (patch)
treeefd51423e4d0f12d8e60c910ebc8c1df69dde254 /define-from-md.awk
parent88c18ef6483fbc7dd89cbab969c1f325b7b55b8e (diff)
downloadrsync-b5e539fc5aa52b94608dbb976981930c03213a78.tar.gz
Use documentation to extract 2 more .h lists
- Change default_cvsignore char[] into a define. - Make the DEFAULT_DONT_COMPRESS and DEFAULT_CVSIGNORE defines get set based on their info in rsync.1.md. - Add a few more don't-compress suffixes from Simon Matter.
Diffstat (limited to 'define-from-md.awk')
-rwxr-xr-xdefine-from-md.awk41
1 files changed, 41 insertions, 0 deletions
diff --git a/define-from-md.awk b/define-from-md.awk
new file mode 100755
index 00000000..9f7f2bf3
--- /dev/null
+++ b/define-from-md.awk
@@ -0,0 +1,41 @@
+#!/usr/bin/awk -f
+
+# The caller must pass args: -v hfile=NAME rsync.1.md
+
+BEGIN {
+ heading = "/* DO NOT EDIT THIS FILE! It is auto-generated from a list of values in " ARGV[1] "! */"
+ if (hfile ~ /compress/) {
+ define = "#define DEFAULT_DONT_COMPRESS"
+ prefix = "*."
+ } else {
+ define = "#define DEFAULT_CVSIGNORE"
+ prefix = ""
+ }
+ value_list = ""
+}
+
+/^ > [^ ]+$/ {
+ gsub(/`/, "")
+ if (value_list != "") value_list = value_list " "
+ value_list = value_list prefix $2
+ next
+}
+
+value_list ~ /\.gz / && hfile ~ /compress/ {
+ exit
+}
+
+value_list ~ /SCCS / && hfile ~ /cvsignore/ {
+ exit
+}
+
+value_list = ""
+
+END {
+ if (value_list != "")
+ print heading "\n\n" define " \"" value_list "\"" > hfile
+ else {
+ print "Failed to find a value list in " ARGV[1] " for " hfile
+ exit 1
+ }
+}