Statistics
| Branch: | Tag: | Revision:

root / autotools / check-man-references @ 4fe04580

History | View | Annotate | Download (1.5 kB)

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