#!/usr/bin/perl # # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # SPDX-License-Identifier: MPL-2.0 # # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, you can obtain one at https://mozilla.org/MPL/2.0/. # # See the COPYRIGHT file distributed with this work for additional # information regarding copyright ownership. eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; # this emulates #! processing on NIH machines. # (remove #! line above if indigestible) $master = 1; eval '$'.$1.'$2;' while $ARGV[0] =~ /^([A-Za-z_0-9]+=)(.*)/ && shift; # process any FOO=bar switches $, = ' '; # set output field separator $\ = "\n"; # set output record separator $change = 0; $status = 0; $wasblank = 1; line: while (<>) { ($Fld1,$Fld2,$Fld3,$Fld4) = split(' ', $_, 9999); $change = 0 if (!$master && /^\s+--- .* ---$/); if ($Fld1 =~ /^[1-9][0-9]*\.$/ && $Fld2 =~ /^\[.*\]$/) { if ($change != 0 && $Fld1 >= $change) { print 'bad change number', $Fld1; $status = 1; } if ($master && $change != 0 && $Fld1 + 1 != $change) { print 'bad change number', $Fld1; $status = 1; } $change = $Fld1; if (!$wasblank) { print 'missing blank line before change', $Fld1; $status = 1; } } if (/^\s+--- .* ---$/) { if (!$wasblank) { print 'missing blank line before release marker for', $Fld2; $status = 1; } } if ($Fld1 eq "") { $wasblank = 1; } else { $wasblank = 0; } } exit $status;