#!/usr/bin/perl -w
use strict;
use DirHandle;
use File::Basename;
use Getopt::Long;
my $rcs = '$Id: makeheader.pl,v 1.8 2001/05/13 19:34:55 gilles Exp $ ';
my $debug = 0;
my $myself = $0;
my $date = scalar(localtime());
my $title;
GetOptions(
"debug" => \$debug,
"title:s" => \$title,
);
my $dir = shift(@ARGV);
my $pdir;
#$pdir = basename(dirname($dir));
$pdir = $title || basename(`pwd`);
sub def {
my $key = shift;
my $default = shift || '';
my $definitions = 'm4/definitions.m4';
my $value = `(cat $definitions ;echo $key)|m4 -P` || $default;
return $value;
}
my $email = def('M4_EMAIL', 'Unknown EMAIL');
my $name = def('M4_AUTHOR', 'Unknown AUTHOR');
my $soft = def('M4_SOFTWARE', 'Unknown SOFTWARE')
. " " . def('M4_VERSION', 'VERSION');
my $mailto = "$name";
my $dr = DirHandle->new($dir);
my @files = grep { !/^\..*$/i } $dr->read();
$debug and print "@files\n";
my (%files, @list, %done);
foreach my $file (@files) {
my($base, $lang, $ext);
unless ($file =~ /(.*)\.(.*)\.(.*)/) {
next;
}
else{
$debug and print "($1, $2, $3)\n";
$files{$file}{'base'} = $1;
$files{$file}{'lang'} = $2;
$files{$file}{'ext'} = $3;
}
}
foreach my $file (sort keys %files) {
my($base, $lang, $ext);
$base = $files{$file}{'base'} ;
$lang = $files{$file}{'lang'} ;
$ext =$files{$file}{'ext'} ;
push(@list,
"\n $base "
. space(20,$base))
unless exists($done{$base});
push(@list, "$lang");
$done{$base}++;
}
print < -->
$pdir
@list
$mailto
Last modified: $date
EOF
sub space {
my $num = shift;
my $string = shift;
my $diff = $num - length($string);
unless ($diff > 0) {
return "";
}else{
return("." x $diff);
}
}