#!/usr/bin/env perl

if ((@ARGV != 2) && (@ARGV != 3)) { die "USAGE: demodemap (inlist) (outlist) [-close]\n" }

$inlist = $ARGV[0];
$outlist = $ARGV[1];

$close = "";
if ((@ARGV == 3) && ($ARGV[2] eq "-close")) {
    $close = "-close";
}

open (FILE, "$inlist");
@list = <FILE>;
$first = $list[$i]; chop ($first);
close (FILE);

# find the appropriate script file
$confdir = `gconfig -q CONFDIR`; chop ($confdir);
$script  = "$confdir/mana/modes.pro";
$answer  = `cameraconfig -ccds`;
@ccds    = split (" ", $answer);

$scale = 256;
$modefits = `detsearch $close -quiet -image $first $ccds[0] split -type modes`; chop ($modefits);
if ($?) {
    print "ERROR: can't get mode image\n";
    exit 1;
}
@words = split ("/", $modefits);
$basename = $words[-1];

open (MANA, "|mana --norc");
print MANA "input $script\n";
print MANA "demodemap $inlist $outlist $modefits $basename $scale\n";
print MANA "exit 1\n";
close (MANA);
if ($?) {
    print STDERR "ERROR problem with demodemap\n";
    exit 1;
}

# print STDOUT "SUCCESS: finished with demodemap\n";

exit 0;

sub vsystem {
    print STDERR "@_\n";
    $status = system ("@_");
    $status;
}

sub goodbye {
    die "@_\n";
}


sub old {
    print MANA "macro go\n";
    print MANA " medianmosaic $inlist 256\n";            # load images, create mosaic
    print MANA " rd U $modefits\n";                      # load mode images
    print MANA " getmodes\n";                            # extract modes from mode image
    print MANA " setmodes2\n";                           # determine mode contributions
    print MANA " mkmodel\n";                             # create modal map

    print MANA " applymodalmap $inlist $outlist 256\n";  # subtract modal map from inlist images 
    print MANA " exit 0\n";
    print MANA "end\n";

    print MANA "go\n";
}
