Fix the downgrade function of cfgupgrade
[ganeti-local] / autotools / check-man-references
1 #!/bin/bash
2 #
3
4 # Copyright (C) 2013 Google Inc.
5 #
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10 #
11 # This program is distributed in the hope that it will be useful, but
12 # WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 # General Public License for more details.
15 #
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19 # 02110-1301, USA.
20
21 set -e -u -o pipefail
22
23 # Use array for arguments so that comments can be inline
24 args=(
25   # "...name*(8)" (missing backslash)
26   -e '\w+\*+\([0-9]*\)'
27
28   # "...name(8)" (no asterisk)
29   -e '\w+\([0-9]*\)'
30
31   # "...name(8)*" (asterisk after number)
32   -e '\w+\([0-9]*\)\*'
33
34   # "...name*\(8)" (only one asterisk before backslash)
35   -e '\w+\*\\\([0-9]*\)'
36
37   # ":manpage:..." (Sphinx-specific)
38   -e ':manpage:'
39   )
40
41 for fname; do
42   # Ignore title and then look for faulty references
43   if tail -n +2 $fname | grep -n -E -i "${args[@]}"; then
44     {
45       echo "Found faulty man page reference(s) in '$fname'."\
46            'Use syntax "**name**\(number)" instead.'\
47            'Example: **gnt-instance**\(8).'
48     } >&2
49     exit 1
50   fi
51 done