home *** CD-ROM | disk | FTP | other *** search
/ Mega Top 1 / os2_top1.zip / os2_top1 / APPS / TEKST / PSUTILS / MAKETEXT < prev    next >
Text File  |  1993-11-29  |  901b  |  33 lines

  1.  
  2. eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
  3.    & eval 'exec perl -S $0 $argv:q'
  4.    if 0;
  5.  
  6. # maketext: perl filter to substitute names in scripts and man pages.
  7.  
  8. %change = ();            # names -> substitutions
  9.  
  10. # get release and patchlevel for all scripts
  11. open(H, "patchlev.h") || die "can't open patchlev.h";
  12. while(<H>) {
  13.    $change{$1} = $2 if /^\#define\s*(\S*)\s*(\S*)/;
  14. }
  15. close(H);
  16.  
  17. foreach (@ARGV) {
  18.    if (/MAN=(.*)/) {        # name.ext name.ext -> name(ext), name(ext)
  19.       local(@man) = split(' ', $1);
  20.       $change{MAN} = join(", ", grep(s/\.(.)/($1)/, @man));
  21.    } elsif (/(.*)=(.*)/) {    # substitute name for value
  22.       $change{$1} = $2;
  23.    } else {            # open file and substitute
  24.       local(@change) = keys %change;
  25.       open(FILE, $_) || die "can't open $_";
  26.       while ($line = <FILE>) {
  27.      grep($line =~ s/@$_@/$change{$_}/g, @change);
  28.      print $line;
  29.       }
  30.       close(FILE);
  31.    }
  32. }
  33.