doc/check-docs: Return nonzero if discrepancies are found.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 8 Aug 2019 14:57:45 +0000 (15:57 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Thu, 8 Aug 2019 14:57:45 +0000 (15:57 +0100)
doc/check-docs

index 06bb539..fbeb367 100755 (executable)
@@ -78,6 +78,14 @@ sub scanaux (\%$) {
 scansyms %LABEL, "doc/SYMBOLS";
 scanaux %DEF, "sod.aux";
 
+my $BAD = 0;
+
+sub bad ($) {
+  my ($what) = @_;
+  print STDERR "$0: $what\n";
+  $BAD = 2;
+}
+
 SYM: for my $sym (sort keys %LABEL) {
   if ($DEF{$sym}) { next SYM; }
   my ($tag, $name) = $sym =~ /^([^:]+):(.*)$/;
@@ -92,7 +100,7 @@ SYM: for my $sym (sort keys %LABEL) {
         $DEF{"fun:sod-frontend:augment-options"}) { }
   elsif ($sym eq "gf:setf/generic-function-methods") { }
   elsif ($tag eq "cty") { }
-  else { print ";; missing $tag:$name (defined in $LABEL{$sym})\n"; }
+  else { bad "missing $tag:$name (defined in $LABEL{$sym})"; }
 }
 
 SYM: for my $sym (sort keys %DEF) {
@@ -115,5 +123,7 @@ SYM: for my $sym (sort keys %DEF) {
   elsif ($sym eq "plug:class-item" || $sym eq "plug:module") { }
   elsif ($sym eq "sym:int") { }
   elsif ($name =~ /^sod-frontend:(.*)$/ && $LABEL{"$tag:$1"}) { }
-  else { print ";; unexpected $tag:$name (described in $DEF{$sym})\n"; }
+  else { bad "unexpected $tag:$name (described in $DEF{$sym})"; }
 }
+
+exit $BAD;