<%args>
$tracklet
$desig => undef
$det_submit
$subtype
$revised => undef
</%args>

<%init>
use Data::Dumper;
my $inst = $m->notes('INST');
my $dbname = $inst->dbname;
my @stuff;
my $cmd;

my $det_str;
if (ref($det_submit)) {
    $det_str = join('|', @{$det_submit});
}
else {
    die "only one detection specified";
}

$tracklet = $tracklet->[0] if ref($tracklet);
my $err ='';
if ($tracklet) {
    # Handle hacky revision data.
    my $revision_data = '';
    if ($revised) {
        $revision_data = "--revision_data '$revised'";
    }

    $desig =~ s/\s+//;
    if ($subtype =~ /neo/i) {
        $cmd = "mpc_sub --instance=$dbname --submitter=$ENV{REMOTE_USER} --dets='$det_str' --neo $tracklet $revision_data";
    }
    elsif ($subtype =~ /incidental/i) {
        $cmd = "mpc_sub --instance=$dbname --submitter=$ENV{REMOTE_USER} --dets='$det_str' --incidental $tracklet $revision_data";
    }
    else {
        $desig =~ s/[()]//g;        # strip numbered asteroid parens
        $cmd = "mpc_sub --instance=$dbname --submitter=$ENV{REMOTE_USER} --dets='$det_str' --followup=$desig $tracklet $revision_data";
    }
    @stuff = `$cmd 2>&1`;
    $err = "Error: $?\n" if $?;
}
else {
    @stuff = ("Nothing to submit.");
}

$r->content_type('text/plain');
$m->clear_buffer;
#$m->print(Dumper($tracklet), $cmd, "\n", @stuff);
$Data::Dumper::Sortkeys = 1;
$m->print($cmd, "\n", @stuff, "\n", $tracklet, "\n", $desig, "\n", $det_str, "\n", "$err");
$m->abort;
</%init>
