#!/usr/bin/perl -w

for my $dot (<*.dot>) {
  my $whichsearch = &searchused($dot);
  if ($whichsearch eq "") {
    print "Ignoring file $dot ...\n";
    next;
  }

  my $searchstr;
  if ($whichsearch eq "fa") {
    $searchstr = "First-Ascent";
  } elsif ($whichsearch eq "gr") {
    $searchstr = "Greedy";
  } else {
    die "Unknown search type $whichsearch\n";
  }

  &spliceused($dot, $searchstr);
}

sub spliceused {
  my ($filename, $search) = @_;

  my $tmp = "${filename}.tmp";

  open (IN, "<$filename");
  open (OUT, ">$tmp");

  while (<IN>) {
    if (/^label =/) {
      ## Only apply change if it isn't there already. Idempotence is good.
      if ($_ !~ /$search/) {
	s/(Net .)/$1 $search/;
      }
    }
    print OUT;
  }

  close(OUT);
  close(IN);
  rename($tmp, $filename);
}

sub searchused {
  my ($filename) = @_;

  if ($filename =~ /^[^-]+-[^-]+-[^-]+-([^-]+)-[^-]+(-initial)?\.dot$/) {
    return ($1);
  } elsif ($filename =~ /^part2/) {
    # in part 2, all we did was greedy search.
    return "gr";
  } else {
    return "";
  }
}
