1#!@PERL@ -w
2# makemanpage - generate man page from --help output using help2man
3#
4# Copyright (C) 2007 Olly Betts
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,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU 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 St, Fifth Floor, Boston, MA  02110-1301  USA
19
20use strict;
21
22# Parse command line parameters
23if ($#ARGV != 2) {
24  print "usage: makemanpage <binary> <source> <manpage>\n";
25  exit 1;
26}
27
28my ($binary, $src, $manpage) = @ARGV;
29
30my $desc;
31open SRC, "<$src" or die "$src: $!\n";
32while (<SRC>) {
33    if (/^(?:PROG_DESC=|\s*#\s*define\s+PROG_DESC\s+)"(.*?)"/) {
34	$desc = $1;
35	last;
36    }
37}
38close SRC;
39unless (defined $desc) {
40    die "$src: Failed to find PROG_DESC\n";
41}
42
43my $r = system("@HELP2MAN@", "-o", $manpage."T", "--no-info",
44	       "-S", "@PACKAGE_STRING@", "-n", $desc, $binary);
45if ($r) {
46    unlink $manpage."T";
47    die "@HELP2MAN@: $!\n";
48}
49rename $manpage."T", $manpage;
50