#!/usr/bin/perl

use strict;
use warnings;

use Carp qw(confess);
use Data::Dumper;
use Sys::RunAlone;
use Ernad::Args;
use Ernad::Erimp;
use Proc::ProcessTable;
use Krichel::Shoti;

## does not really need an erimp
if(check_if_release_in_progress()) {
  exit;
}

our ($impna, $e, $repcode, $in_file, $issuedate);
&Ernad::Args::parse();
$e=Ernad::Erimp->new({'impna'=> $impna, 'verbose'=>3});

my $namf_dir=$e->{'dir'}->{'namf'} // die;
my $perl_dir=$e->{'dir'}->{'perl'} // die;
my $log_dir=$e->{'dir'}->{'log'} // die;
my $ct_run="$perl_dir/check_teasers $impna";

if(not &check_if_more_to_do()) {
  system($ct_run);
  exit;
}

my @files=reverse glob("$namf_dir/*");
my $file=$files[0];

my $shoti=&Krichel::Shoti::now();
my $perl_file="$perl_dir/unleash";
if(not -f $perl_file) {
  die "I don't see your unleash binary $perl_file.";
}
my $com="$perl_file $file";
my $log_file="$log_dir/release"."_$shoti.log";
my $err_file="$log_dir/release"."_$shoti.err";
if(-d $log_dir) {
  $com.=" > $log_file 2> $err_file";
}

system($com);
system($ct_run);
exit;



sub check_if_more_to_do {
  my $cmd=$e->{'dir'}->{'perl'}."/check_release $impna";
  my $out=`$cmd`;
  chomp $out;
  if(not $out) {
    return 0;
  }
  return 1;
}

sub check_if_release_in_progress {
  my $t = new Proc::ProcessTable;
  foreach my $p ( @{$t->table} ){
    my $cmd=$p->cmndline;
    if($cmd=~m|unleash|) {
      # print "I found '$cmd'\n";
      return 1;
    }
    if($cmd=~m| release |) {
      print $cmd;
      return 1;
    }
  }
  return 0;
}


__END__
