Blame src/perl/docsjoin

Packit bbb0ff
#!/usr/bin/perl
Packit bbb0ff
Packit bbb0ff
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material 
Packit bbb0ff
# is made available to anyone wishing to use, modify, copy, or
Packit bbb0ff
# redistribute it subject to the terms and conditions of the GNU General
Packit bbb0ff
# Public License v.2.
Packit bbb0ff
#
Packit bbb0ff
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
Packit bbb0ff
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
Packit bbb0ff
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
Packit bbb0ff
#
Packit bbb0ff
# You should have received a copy of the GNU General Public License
Packit bbb0ff
# along with this program; if not, write to the Free Software
Packit bbb0ff
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Packit bbb0ff
#
Packit bbb0ff
# Author: Petr Splichal <psplicha@redhat.com>
Packit bbb0ff
Packit bbb0ff
# This perl script takes all supplied files or stdin and extracts
Packit bbb0ff
# every =pod section that does not include =head1 headings except
Packit bbb0ff
# those which contain beakerlib-manual-{header,footer} directives.
Packit bbb0ff
#
Packit bbb0ff
# Finally it spits out parsed =pod sections in the following order:
Packit bbb0ff
# beakerlib-manual-header
Packit bbb0ff
# beakerlib-manual-include (all non-=head1 sections included here)
Packit bbb0ff
# beakerlib-manual-footer
Packit bbb0ff
Packit bbb0ff
my $pod = 0;
Packit bbb0ff
my $type = '';
Packit bbb0ff
my %text = (include => '=head1 FUNCTIONS');
Packit bbb0ff
Packit bbb0ff
while (<>) {
Packit bbb0ff
    # end of =pod section
Packit bbb0ff
    if (m/^=cut/) {
Packit bbb0ff
        $pod = 0;
Packit bbb0ff
    }
Packit bbb0ff
Packit bbb0ff
    # recognize header/footer and trash =head1's
Packit bbb0ff
    $type = 'header' if m/beakerlib-manual-header/;
Packit bbb0ff
    $type = 'footer' if /beakerlib-manual-footer/;
Packit bbb0ff
    $type = 'trash'  if /^=head1/ && ! ($type =~ m/header|footer/);
Packit bbb0ff
Packit bbb0ff
    # add to corresponding place
Packit bbb0ff
    $text{$type} .= $_ if $pod;
Packit bbb0ff
Packit bbb0ff
    # start of =pod section
Packit bbb0ff
    if (m/^=pod/) {
Packit bbb0ff
        $pod = 1;
Packit bbb0ff
        $type = 'include';
Packit bbb0ff
    }
Packit bbb0ff
}
Packit bbb0ff
Packit bbb0ff
print $text{header};
Packit bbb0ff
print $text{include};
Packit bbb0ff
print $text{footer};