Statistics
| Branch: | Tag: | Revision:

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

History | View | Annotate | Download (1.5 kB)

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