#!/usr/local/bin/perl
use Fcntl;
use FileHandle;
STDERR->autoflush(1);
STDOUT->autoflush(1);

$LICENSE="/home/disk/wx/ishmail/.license";
$LICENSELOCK="/home/disk/wx/ishmail/license.lock";

$name = getpwuid($<);		
#
$dev="";
$j=0;
while(-x $LICENSELOCK){
    sleep(1);
    if(++$j%10.0 == 0){		# 
	printf(STDERR "Still trying to lock license file\n");
    }				# 
}				# 
open(LOCK,"> $LICENSELOCK");
printf(LOCK "%s\n", $name);
close(LOCK);
#
open(LIC, "<$LICENSE");
LIC->autoflush(1);
$i=0;			      
while(<LIC>){
    chop;
    if($name ne $_){
	@ARR[$i++]=$_;
    }
}
close(LIC);
if($i <18){
    open(LIC, ">$LICENSE");
    LIC->autoflush(1);
    print LIC join("\n",@ARR), "\n", $name, "\n";
close LIC;
close LOCK;
unlink $LICENSELOCK;
}
else{
    print "Sorry out of licenses\n";
    close LIC;
    close LOCK;
    unlink $LICENSELOCK;
    exit(0);
}

#
$ENV{'XBMLANGPATH'} =  '/opt/ishmail/1.3.2/lib/';

system("/usr/local/bin/.hidden/ishmail");
#
$dev="";
$j=0;
while(-x $LICENSELOCK){
    if(++$j%10.0 == 0){		# 
	printf(STDERR "Still trying to lock license file\n");
    }				# 
}				# 
open(LOCK,"> $LICENSELOCK");
printf(LOCK "%s\n", $name);
close(LOCK);
#
open(LIC,"<$LICENSE");
$i=0;			      
while(<LIC>){
    chop;
    if($name ne $_){
	@ARR2[$i++]=$_;
    }
}
close LIC;
open(LIC,">$LICENSE");
LIC->autoflush(1);
print LIC join("\n",@ARR2), "\n";
close LIC;
close LOCK;
unlink $LICENSELOCK;





