#!/usr/bin/perl -w
# -*- mode: CPerl; tab-width: 8; fill-column: 70; -*-

print "Usage: $0 <INPUT_FILE> <NAV_FILE> <MODULEID>\n" and exit if $#ARGV ne 2;

use File::Temp qw/ tempdir /;

$temp = tempdir( "$0.XXXXXXXXXXX", CLEANUP => 1, TMPDIR => 1 );
close STDOUT;
open STDOUT, ">$temp/out" || die $!;

sub out {
  local $_;
  open my $f, $_[0] || die $!;
  while (<$f>) {
    s/%MODULE%/$ARGV[2]/g;
    print;
  }
}

open my $fh, $ARGV[0] || die $!;
while (<$fh>) {
  if (/^(.*)<\/body>/i) {
    print $1;
    out $ARGV[1];
    s/^.*(<\/body>.*)$/$1/i;
  }
  elsif (/^(.*<body[^>]*>).*$/i) {
    print $1;
    out $ARGV[1];
    s/^.*<body[^>]*>(.*)$/$1/i;
  }
  print;
}
close STDOUT;
exec ("mv -f '$temp/out' '$ARGV[0]'")   or print STDERR "couldn't exec foo: $!"; 
