#!/usr/bin/perl
#
# Alle Manpages, die kein Verweis sind (also > $MIN_BYTES Bytes oder so),
# durch gzip -9 schicken.
#
$ENV{'PATH'}="/bin:/usr/bin";
$old_dir=`pwd`;
($name=$0) =~ s#.*/##; # get basename from $0
$MIN_BYTES=200;
$count=0;
$all_size=0;
format STDOUT =
zippe Datei @<<<<<<<<<<<< mit @||||||| Bytes
$_ $t
.
sub filesize # return filesize of 1. parameter
{
my ($F)=@_;
(stat($F))[7];
}
sub zip_dir # zip files in dir
{
my ($D)=@_;
my $a=0;
chdir $D or die "Kann nicht in Verzeichnis $D wechseln: $!\n";
print " Bearbeite Unterverzeichnis: [$D]\n";
@FILES=<*>;
foreach (@FILES)
{
unless ( /\.gz$/ )
{
if ( ($t=&filesize($_)) > $MIN_BYTES)
{
print "\n" unless ($a==1); $a=1;
write; # write using FORMAT
system "gzip", "-f9", $_;
$count++; $all_size+=$t;
}
}
}
print "\n" if ($a);
chdir "..";
}
# main()
print "\n $name: alle Man- & Cat-Pages mit gzip -9 packen .\n";
print "\n (falls >$MIN_BYTES Byte)\n\n\n";
@MANPATH=("/usr/man/de","/usr/man","/usr/X11R6/man","/usr/TeX/man","/usr/local/man",
"/usr/openwin/man","/usr/man/preformat","/usr/tex-local/man","/usr/lib/perl5/man");
foreach $P (@MANPATH)
{
print "\nBearbeite Man-Dir $P\n\n";
chdir $P;
@ALL=<*>;
foreach (@ALL)
{ &zip_dir($_) if (-d $_ && /(cat.)|(man.)/ ) } # falls dir -> zip it
}
print "\nZipped $count files with $all_size bytes at all.\n\nEnd of cronjob.\n";
chdir $old_dir;