#!/usr/bin/perl my %db2x_config = ( 'docbook2X-version' => q<0.8.8>, # Used by db2x_manxml and db2x_texixml only 'utf8trans-program' => q, 'utf8trans-map-roff' => q, 'utf8trans-map-texi' => q, 'iconv-program' => q, 'makeinfo-program' => q, # Used by docbook2X.pl only 'db2x_xsltproc-program' => q, 'db2x_manxml-program' => q, 'db2x_texixml-program' => q, # Used by db2x_xsltproc.pl only 'stylesheets-catalog' => q, 'xsltproc-program' => q, 'sgml2xml-isoent-program' => q, 'java-program' => q<>, 'resolver-jars' => q<>, 'saxon-jars' => q<>, 'xalan-jars' => q<>, 'xslt-processor' => q, ); my $CONVERSION_TYPE = q; # vim:sw=4 sta et showmatch # docbook2X.pl - script to invoke man page or Texinfo conversion # (See docbook2X documentation for details) # # (C) 2003-2004 Steve Cheng # # See the COPYING file in the docbook2X distribution # for the copyright status of this software. # # Note: docbook2X.pl does not run by itself! # It must be configured by including a config.pl file # which is done when building docbook2X. use strict; my @xsltproc_opts; my @xml_opts; while(my $opt = shift @ARGV) { if($opt eq '--help') { print_help(); exit(0); } elsif($opt eq '--version') { print_version(); exit(0); } elsif($opt =~ /^--((sym-?|so-?|no-?)links|no-groff-extensions|compatible|list-files|to-stdout|info|plaintext)$/) { push @xml_opts, $opt; } elsif($opt =~ /^--(encoding|utf8trans-(program|map)|iconv-program)/) { push @xml_opts, $opt; push @xml_opts, shift(@ARGV) if $opt !~ /=/; } elsif($opt eq '--output') { # This option is ineffectual. shift @ARGV if $opt !~ /=/; # Get rid of filename argument also } elsif($opt eq '-o') { # Same as --output. shift @ARGV; } else { push @xsltproc_opts, $opt; } } if(!grep /^-s|--stylesheet$/, @xsltproc_opts) { unshift @xsltproc_opts, ('-s', $CONVERSION_TYPE); } unshift @xsltproc_opts, $db2x_config{'db2x_xsltproc-program'}; if($CONVERSION_TYPE eq 'texi') { unshift @xml_opts, $db2x_config{'db2x_texixml-program'}; } elsif($CONVERSION_TYPE eq 'man') { unshift @xml_opts, $db2x_config{'db2x_manxml-program'}; } exec( shell_quote(@xsltproc_opts) . ' | ' . shell_quote(@xml_opts)); sub shell_quote { join(' ', map { my $u = $_; $u =~ s#([\$`"\\\n])#\\$1#g; '"' . $u . '"' } @_); } sub print_help { print "Usage: $0 [OPTION]... XML-FILE\n"; if($CONVERSION_TYPE eq 'texi') { print "Convert DocBook XML documents to Texinfo\n\n"; } elsif($CONVERSION_TYPE eq 'man') { print "Convert DocBook XML documents to man pages\n\n"; } print "See docbook2X(1) for more details about this program.\n"; } sub print_version { print "$0 (part of docbook2X " . $db2x_config{'docbook2X-version'} . ")\n"; print <<'end'; $Revision: 1.12 $ $Date: 2006/04/14 17:29:04 $ Copyright (C) 2003-2004 Steve Cheng This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. end }