#!/usr/bin/perl

@ls = `ls -1 -R`;
@flist = ();
@flist2 = ();
$cdir = '.';
foreach $ln (@ls) {
  if ($ln =~ /(.*)\:$/) {
    $cdir = $1;
  } elsif ($ln =~ /\S/) {
    $ln =~ s/^\s+//;
    $ln =~ s/\s+$//;
    if ($ln =~ /(\.th$|\.th2$)/) {
      push @flist, "$cdir/$ln";
    }
    if ($ln =~ /thconfig/) {
      push @flist2, "$cdir/$ln";
    }
  }
}

foreach $fn (@flist) {
  open(FL,"$fn");
  @fls = <FL>;
  close(FL);
  @flso = ();
  $toconv = 1;
  $numch = 0;
  foreach $fln (@fls) {
    if ($fln =~ /\d\s+station\s+\-name\s+\S+/) {
      $toconv = 0;
    }
    if ($fln =~ /\s+\-id\s+\S+/) {
      $toconv = 0;
    }
    if ($fln =~ /(\s+)\-name(\s+\S+)/) {$numch++};
    $fln =~ s/(\s+)\-name(\s+\S+)/\1\-id\2/g;
    if ($fln =~ /(^\s*)name(\s+\S+\s*$)/) {$numch++};
    $fln =~ s/(^\s*)name(\s+\S+\s*$)/\1\id\2/g;
    if ($fln =~ /(\s+)\-station(\s+\S+)/) {$numch++};
    $fln =~ s/(\s+)\-station(\s+\S+)/\1\-name\2/g;
    push @flso,$fln;
  }
  if ($toconv && ($numch > 0)) {
    print "$fn ($numch name/station/id changes)\n";
    open(FL,">$fn");
    print FL "@flso";
    close(FL);
  }
}


foreach $fn (@flist) {
  open(FL,"$fn");
  @fls = <FL>;
  close(FL);
  @flso = ();
  $toconv = 1;
  $numch = 0;
  foreach $fln (@fls) {
    if ($fln =~ /endcenterline/) {
      $toconv = 0;
    }
    if ($fln =~ /^\s*centerline\s*$/) {
      $toconv = 0;
    }
    if ($fln =~ /^\s*enddata/) {
      $numch++;
      $fln =~ s/data/centerline/;
    }  
    if ($fln =~ /^\s*data\s*$/) {
      $numch++;
      $fln =~ s/data/centerline/;
    }  
    if ($fln =~ /^\s*data\s*(\s+)$/) {
      if ($1 =~ /^\-/) {
        $numch++;
        $fln =~ s/data/centerline/;
      }
    }
    push @flso,$fln;
  }
  if ($toconv && ($numch > 0)) {
    print "$fn ($numch data/centreline changes)\n";
    open(FL,">$fn");
    print FL "@flso";
    close(FL);
  }
}

foreach $fn (@flist2) {
  open(FL,"$fn");
  @fls = <FL>;
  close(FL);
  @flso = ();
  $numch = 0;
  foreach $fln (@fls) {
    if ($fln =~ /export\W*(map|atlas)\W*(none|projected|plan|extended)/) {
      $numch++;
      $fln =~ s/map (none|projected|plan|extended)/map -proj $1/;
      $fln =~ s/atlas (none|projected|plan|extended)/atlas -proj $1/;
    }
    push @flso,$fln;
  }
  if ($numch > 0) {
    print "$fn ($numch export changes)\n";
    open(FL,">$fn");
    print FL "@flso";
    close(FL);
  }
}