#!/usr/bin/perl

# NOTE: this script is used by generate-new-scores; it is meant to be copied
#       to and called from the masses/ directory of the checkout being used
#       for the score generation run for the particular scoreset; you
#       shouldn't need to call this script manually
#
# <@LICENSE>
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to you under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at:
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# </@LICENSE>

use strict;
use warnings;

my $scoreset = 0; # default
my $ham_pref = 5.0;
my $threshold = 5.0;
my $epochs = 100;
my $note = '';

my %original_rules;

open(CONFIG, "config") or die "Cannot open config file: $!";
while (<CONFIG>) {
  $scoreset = $1 if /^\s*SCORESET=(\d)\s*$/;
  $ham_pref = $1 if /^\s*HAM_PREFERENCE=([\d.-]+)/;
  $threshold = $1 if /^\s*THRESHOLD=([\d.-]+)/;
  $epochs = $1 if /^\s*EPOCHS=(\d+)\s*$/;
  $note = "-$1" if /^\s*NOTE=(.+)$/;


}
close CONFIG;

print "Removing scores for base release rules from newly generated scores\n";

open(ORIG, "../rules/50_scores.cf") or die "Cannot open original score file: $!";
while(<ORIG>) {
  if (/^\s*score\s+(\S+)/) {
    $original_rules{$1} = undef;
  }
}
close ORIG;


open(ORIG, "gen-set$scoreset-$ham_pref-$threshold-$epochs-ga$note/scores") or die "Cannot open original scores file: $!";
open(NEW, ">gen-set$scoreset-$ham_pref-$threshold-$epochs-ga$note/scores-new") or die "Cannot open scores-new file: $!";
while (<ORIG>) {
  if (/^score\s+(\S+)/) {
    next if exists $original_rules{$1};
    print NEW $_;
  }
}
close ORIG;
close NEW;
