From a70ba566e18196a2a981b37d8993e6871464d1ff Mon Sep 17 00:00:00 2001 From: Guillaume Rousse Date: Sun, 29 Mar 2009 22:23:05 +0000 Subject: initial import --- normalize_man_pages | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 normalize_man_pages diff --git a/normalize_man_pages b/normalize_man_pages new file mode 100755 index 0000000..2a93927 --- /dev/null +++ b/normalize_man_pages @@ -0,0 +1,60 @@ +#!/usr/bin/perl +# $Id: fix_eol 242516 2008-05-14 08:54:21Z guillomovitch $ +# ensure all man pages contains a comment line + +use strict; +use warnings; +use File::Find; +use File::Temp; + +my $buildroot = $ENV{RPM_BUILD_ROOT}; +die "No build root defined" unless $buildroot; +die "Invalid build root" unless -d $buildroot; +# normalize build root +$buildroot =~ s|/$||; + +my $mandir=`rpm --eval %{_mandir}`; +chomp $mandir; + +my $exclude_string = join('|', + map { '(:?' . quotemeta($_) . ')' } + $ENV{EXCLUDE_FROM_MAN_PAGE_NORMALIZATION} ? + split(' ', $ENV{EXCLUDE_FROM_MAN_PAGE_NORMALIZATION}) : () +); +my $exclude_pattern = qr/$exclude_string/; + +find(\&normalize, $buildroot . $mandir); + +sub normalize { + # skip everything but files + return unless -f $_; + # skip symlinks + return if -l $_; + # skip excluded files + return if $exclude_string && $File::Find::name =~ $exclude_pattern; + + # check if first line begin with a comment + open(my $in, '<', $_) or die "Unable to open file $_: $!"; + my $line = <$in>; + if (defined $line && $line !~ /^\.\\"/) { + # process all file + my $out = File::Temp->new(DIR => '.', UNLINK => 0); + print $out <<'EOF'; +.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +.\" make the file command recognize this file as a roff text +.\"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +EOF + print $out $line; + while (defined ($line = <$in>)) { + print $out $line; + } + my $tmp = $out->filename; + $out = undef; + + # rename file, taking care to keep original permissions + my $perms = (stat $_)[2] & 07777; + rename($tmp, $_) or die "Unable to rename $tmp to $_: $!"; + chmod($perms, $_); + } + close($in); +} -- cgit v1.2.1