From 32d9bab55e81f021d06a671176378855cc86f426 Mon Sep 17 00:00:00 2001 From: Warren Young Date: Thu, 2 May 2013 00:10:15 +0000 Subject: [PATCH] Generating faq/faq.body automatically from faq/faq.html whenever latter is updated, using new bodysnatcher.pl script. --- winsup/doc/ChangeLog | 6 ++++++ winsup/doc/Makefile.in | 7 ++++-- winsup/doc/bodysnatcher.pl | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100755 winsup/doc/bodysnatcher.pl diff --git a/winsup/doc/ChangeLog b/winsup/doc/ChangeLog index aeb214ebf..3aa225f0c 100644 --- a/winsup/doc/ChangeLog +++ b/winsup/doc/ChangeLog @@ -1,3 +1,9 @@ +2013-05-01 Warren Young + + * bodysnatcher.pl: Created + * Makefile.in (faq/faq.body): Added target to create this file from + faq/faq.html using new bodysnatcher.pl script. + 2013-05-01 Warren Young * cygwin-ug.xml: Renamed from cygwin-ug.in.sgml diff --git a/winsup/doc/Makefile.in b/winsup/doc/Makefile.in index c81de1058..f9445852f 100644 --- a/winsup/doc/Makefile.in +++ b/winsup/doc/Makefile.in @@ -24,13 +24,16 @@ include $(srcdir)/../Makefile.common FAQ_SOURCES:= faq*.xml -.SUFFIXES: +.SUFFIXES: .html .body + +.html.body: + $(srcdir)/bodysnatcher.pl $< all: Makefile \ cygwin-ug-net/cygwin-ug-net.html \ cygwin-ug-net/cygwin-ug-net-nochunks.html.gz \ cygwin-api/cygwin-api.html \ - faq/faq.html \ + faq/faq.body faq/faq.html \ cygwin-ug-net/cygwin-ug-net.pdf \ cygwin-api/cygwin-api.pdf diff --git a/winsup/doc/bodysnatcher.pl b/winsup/doc/bodysnatcher.pl new file mode 100755 index 000000000..1db30aad4 --- /dev/null +++ b/winsup/doc/bodysnatcher.pl @@ -0,0 +1,44 @@ +#!/usr/bin/perl -w +# Copyright © 2013 by Red Hat, Inc. +# +# This file is part of Cygwin. +# +# This software is a copyrighted work licensed under the terms of the +# Cygwin license. Please consult the file "CYGWIN_LICENSE" for +# details. + +use strict; + +if (@ARGV) { + my $infile = $ARGV[0]; + my $outfile = $infile; + $outfile =~ s/\.html$/.body/; + if ($infile ne $outfile) { + open my $input, '<', $infile or die "Failed to open $infile: $!\n"; + my $html = do { local $/; <$input> }; # slurp! + my ($body) = $html =~ m|]*>(.*)|is; + if ($body) { + open my $output, '>', $outfile + or die "Failed to write $outfile: $!\n"; + print $output $body; + } + else { + print STDERR "Could not find element in $infile!\n\n"; + exit 3; + } + } + else { + print STDERR "Input file name must end in .html!\n\n"; + exit 2; + } +} +else { + print STDERR < + + Transforms input.html to input.body by extracting whatever is + between and in input.html. + +USAGE + exit 1; +}