#!/usr/bin/env perl

# program to read list of calibration data produced by extractinfo and update the corresponding
# rows in gpc1 relExp table

use strict;
use warnings;

my $release_name = shift ;
my $input = shift;

die "need release_name\n", unless defined $release_name;
die "need input file name\n", unless defined $input;

open IN, "<$input" or die "failed to open $input\n";


my $cmd = "releasetool -updaterelexp -release_name $release_name -set_state calibrated";

while (my $line = <IN>) {
    next if $line =~ /^#/;
    chomp $line;

    my ($exp_name, $exp_id, $cam_id, $zpt, $dmcal, $mcal, $filter, $flags, $ubercal_dist)
        = split " ", $line;

    die "failed to parse $line\n" unless defined $ubercal_dist;

    my $command = "$cmd -exp_id $exp_id -set_zpt_obs $zpt -set_zpt_stdev $dmcal -set_flags $flags";
    $command   .= " -set_mcal $mcal -set_ubercal_dist $ubercal_dist";

    print STDERR "$command\n";

    my $rc = system $command;
    if ($rc) {
        my $status = $rc >> 8;
        die "$command failed with $rc $status\n";
    }
}
