[SCM] The rsync repository. - branch master updated
Rsync CVS commit messages
rsync-cvs at lists.samba.org
Tue Jun 16 01:33:36 UTC 2020
The branch, master has been updated
via 5496eda5 Turn help-from-md into an awk script.
from 353dec11 Avoid -e option to sed for BSD.
https://git.samba.org/?p=rsync.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 5496eda5d18afb67fdae4e482a97516cab1e0267
Author: Wayne Davison <wayne at opencoder.net>
Date: Mon Jun 15 18:14:08 2020 -0700
Turn help-from-md into an awk script.
-----------------------------------------------------------------------
Summary of changes:
Makefile.in | 2 +-
help-from-md | 32 --------------------------------
help-from-md.awk | 40 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 41 insertions(+), 33 deletions(-)
delete mode 100755 help-from-md
create mode 100755 help-from-md.awk
Changeset truncated at 500 lines:
diff --git a/Makefile.in b/Makefile.in
index a0681c89..5e5038d7 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -104,7 +104,7 @@ options.o: latest-year.h help-rsync.h help-rsyncd.h
flist.o: rounding.h
help-rsync.h help-rsyncd.h: rsync.1.md
- ./help-from-md "$(srcdir)/$<" $@
+ awk -f $(srcdir)/help-from-md.awk -v helpfile=$@ $(srcdir)/$<
rounding.h: rounding.c rsync.h proto.h
@for r in 0 1 3; do \
diff --git a/help-from-md b/help-from-md
deleted file mode 100755
index a5b61577..00000000
--- a/help-from-md
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-if [[ "$#" != 2 ]]; then
- echo "Usage: $0 MD_FILE HELP_FILE.h"
- exit 1
-fi
-
-mdfile="$1"
-helpfile="$2"
-newfile="$helpfile.new"
-findfile="${helpfile/./\\.}"
-
-sed '1,/^\[comment\].*'"$findfile"'/d' <"$mdfile" | \
- sed '1,/^```/d' | \
- sed '/^```/,$d' | \
- sed 's/"/\\"/g' | \
- sed 's/^/ rprintf(F,"/' | \
- sed 's/$/\\n");/' >"$newfile"
-
-if [[ ! -s "$newfile" ]]; then
- rm "$newfile"
- echo "Discarding empty output for $helpfile file from $mdfile"
- exit 1
-fi
-
-(cat <<EOT
-/* DO NOT EDIT THIS FILE! It is auto-generated from the option list in $mdfile! */
-
-EOT
-cat "$newfile"
-) >"$helpfile"
-rm "$newfile"
diff --git a/help-from-md.awk b/help-from-md.awk
new file mode 100755
index 00000000..ca358c89
--- /dev/null
+++ b/help-from-md.awk
@@ -0,0 +1,40 @@
+#!/usr/bin/awk -f
+
+# The caller must set -v helpfile=help-NAME.h and pass arg NAME.NUM.md
+
+BEGIN {
+ heading = "/* DO NOT EDIT THIS FILE! It is auto-generated from the option list in " ARGV[1] "! */"
+ findcomment = helpfile
+ 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 > helpfile
+ else {
+ print "Failed to find " helpfile " section in " ARGV[1]
+ exit 1
+ }
+}
--
The rsync repository.
More information about the rsync-cvs
mailing list