#!/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); } }