#!perl
#
# Copyright (c) 2002 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

foreach $param ( @ARGV ) {
    if ( $param =~ /=/ ) {
	$vars{$`} = $';
    } else {
	push( @files, $param );
    }
}

die "Usage: $0 [var=val...] srcFile destFile\n" unless scalar( @files ) == 2;

open( IN, $files[0] ) or die "Can't read $files[0]: $!\n";
open( OUT, ">$files[1]" ) or die "Can't create $files[1]: $!\n";
while ( <IN> ) {
    while ( /%%%([^%]+)%%%/ ) {
	print OUT $`;
	if ( exists $vars{$1} ) {
	    print OUT $vars{$1};
	} else {
	    print OUT $&;
	}
	$_ = $';
    }
    print OUT $_;
}
close( IN );
close( OUT );
chmod( 0755, $files[1] );	# make executable

exit 0;
