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