# exception to add: ignore license files.
# exception to add: uref's can go above 79 chars.
check-texinfo:
- printf "Running basic texinfo linters\n"
- printf "...lines containing tabstops?\n" 2>&1 | tee $(top_srcdir)/doc/handbook/texinfo_handbook.log || true
- printf "...lines containing tabstops?\n" 2>&1 | tee $(top_srcdir)/doc/tutorial/texinfo_tutorial.log || true
- @cd $(top_srcdir)/doc/handbook ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/\t/ {print FILENAME":"NR":"$$0}' > $(srcdir)/texinfo_handbook.log || true
- @cd $(top_srcdir)/doc/tutorial ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/\t/ {print FILENAME":"NR":"$$0}' > $(srcdir)/texinfo_tutorial.log || true
- printf "...line length over 79 chars?\n" 2>&1 | tee $(top_srcdir)/doc/handbook/texinfo_handbook.log || true
- @cd $(top_srcdir)/doc/handbook ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk 'length>79 {print FILENAME":"NR":"$$0}' > $(srcdir)/texinfo_handbook.log || true
- printf "...line length over 79 chars?\n" 2>&1 | tee $(top_srcdir)/doc/tutorial/texinfo_tutorial.log || true
- @cd $(top_srcdir)/doc/tutorial ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk 'length>79 {print FILENAME":"NR":"$$0}' > $(srcdir)/texinfo_tutorial.log || true
- printf "...lines containing macros incompatible with old makeinfo?\n" 2>&1 | tee -a $(top_srcdir)/doc/handbook/texinfo_handbook.log || true
- @cd $(top_srcdir)/doc/handbook ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/@geq\{\}/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_handbook.log || true
- printf "...lines containing macros incompatible with old makeinfo?\n" 2>&1 | tee -a $(top_srcdir)/doc/tutorial/texinfo_tutorial.log || true
- @cd $(top_srcdir)/doc/tutorial ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/@geq\{\}/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_tutorial.log || true
- printf "...lines containing macros incompatible with texi2mdoc?\n" 2>&1 | tee -a $(top_srcdir)/doc/handbook/texinfo_handbook.log || true
- @cd $(top_srcdir)/doc/handbook ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/@footnote\{/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_handbook.log || true
- printf "...lines containing macros incompatible with texi2mdoc?\n" 2>&1 | tee -a $(top_srcdir)/doc/tutorial/texinfo_tutorial.log || true
- @cd $(top_srcdir)/doc/tutorial ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/@footnote\{/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_tutorial.log || true
- printf "...lines telling us what is left TODO or to fix?\n" 2>&1 | tee -a $(top_srcdir)/doc/handbook/texinfo_handbook.log || true
- @cd $(top_srcdir)/doc/handbook ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/TODO/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_handbook.log || true
- @cd $(top_srcdir)/doc/handbook ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/XXX/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_handbook.log || true
- printf "...lines telling us what is left TODO or to fix?\n" 2>&1 | tee -a $(top_srcdir)/doc/tutorial/texinfo_tutorial.log || true
- @cd $(top_srcdir)/doc/tutorial ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/TODO/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_tutorial.log || true
- @cd $(top_srcdir)/doc/tutorial ; find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 awk '/XXX/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/texinfo_tutorial.log || true
- printf "...lines containing a popular typo\n" 2>&1 | tee -a $(top_srcdir)/lint.log || true
- @cd $(top_srcdir) ; find . -type f ! -path '*/.*' -name '*' -print0 | xargs -0 awk '/wether/ {print FILENAME":"NR":"$$0}' >> $(srcdir)/lint.log || true
+ @cd $(top_srcdir); find . -type f ! -path '*/.*' -name '*.texi' -print0 | xargs -0 ./contrib/scripts/check-texinfo.awk > $(srcdir)/texinfo_lint.log || true
[AC_DEFINE_UNQUOTED([HAVE_PERL], [1], [Path to Perl])],
[AC_DEFINE_UNQUOTED([HAVE_PERL], [0], [Path to Perl])])
+# awk
+AC_PATH_PROGS( AWK_BINARY, [awk gawk], ,$PATH:/usr/bin/:/usr/local/bin )
+AC_SUBST([AWK_BINARY])
+
# should we install gnunet-logread?
AC_MSG_CHECKING(whether to install gnunet-logread)
AC_ARG_WITH([gnunet-logread],
removetrailingwhitespace.py \
gnunet_pyexpect.py \
gnunet_janitor.py \
- gnunet-chk.py
+ gnunet-chk.py \
+ check-texinfo.awk
bin_SCRIPTS = \
gnunet-bugreport \
$(SCRIPTS) \
removetrailingwhitespace.py.in \
pydiffer.py.in \
- gnunet-suidfix
+ gnunet-suidfix \
+ check-texinfo.awk.in
CLEANFILES = \
$(noinst_SCRIPTS)
-do_subst = $(AWK) -v py="$(PYTHON)" '{gsub("@PYTHONEXE@",py); print $$0}'
+do_subst = $(AWK) -v py="$(PYTHON)" -v awkay="$(AWK_BINARY)" '{if (/@AWKEXE@/) { gsub("@AWKEXE@",awkay)}; gsub("@PYTHONEXE@",py); print $$0}'
# Use SUFFIX Extension rules, they are more portable for every
# implementation of 'make'.
.py.in.py:
$(do_subst) < $< > $@
chmod +x $@
+
+check-texinfo.awk: check-texinfo.awk.in Makefile
+ $(do_subst) < $(srcdir)/check-texinfo.awk.in > check-texinfo.awk
+ chmod +x check-texinfo.awk
--- /dev/null
+#!@AWKEXE@ -f
+
+# Dedicated to the Public Domain.
+# SPDX-License-Identifier: 0BSD
+
+BEGIN {
+ printf "Running basic texinfo linters\n" ;
+}
+
+{
+ if(/\t/) {
+ printf "...lines containing tabstops?\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+}
+
+{
+ if(length>79) {
+ printf "...line length over 79 chars?\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+}
+
+{
+ if(/@geq\{\}/) {
+ printf "...lines containing macros incompatible with old makeinfo?\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+}
+
+{
+ if (/@footnote\{/) {
+ printf "...lines containing macros incompatible with texi2mdoc?\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+}
+
+{
+ if (/TODO/) {
+ printf "...lines telling us what is left TODO?\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+
+ if (/XXX/) {
+ printf "...lines telling us what is left to fix?\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+}
+
+{
+ if (/wether/) {
+ printf "...lines containing a popular typo\n" ;
+ print FILENAME":"NR":"$0 ;
+ }
+}