#!/bin/bash # # Copyright (C) 2013 Google Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301, USA. set -e -u -o pipefail # Use array for arguments so that comments can be inline args=( # "...name*(8)" (missing backslash) -e '\w+\*+\([0-9]*\)' # "...name(8)" (no asterisk) -e '\w+\([0-9]*\)' # "...name(8)*" (asterisk after number) -e '\w+\([0-9]*\)\*' # "...name*\(8)" (only one asterisk before backslash) -e '\w+\*\\\([0-9]*\)' # ":manpage:..." (Sphinx-specific) -e ':manpage:' ) for fname; do # Ignore title and then look for faulty references if tail -n +2 $fname | grep -n -E -i "${args[@]}"; then { echo "Found faulty man page reference(s) in '$fname'."\ 'Use syntax "**name**\(number)" instead.'\ 'Example: **gnt-instance**\(8).' } >&2 exit 1 fi done