#!/usr/bin/perl -w

my @listado;
my $temp;
my $salida;
my %virus;
my $contador=0;

my $pavcl;
$pavcl = shift;
$pavcl .=  '/bin/pavcl';

if ($ARGV[0] eq '-IsItInstalled') {
  exit 0 if -x "$pavcl";
  exit 1;
}

$| = 1;

$base = `pwd`;
chomp $base;

pop @ARGV;
#$dir = pop @ARGV;
#system "cd $dir";

#open TEMP, ">>/tmp/salida";
#print SALIDA  "Parmetros @ARGV\n\n";
#close SALIDA;
#print TEMP `pwd`;

my @listado1 = split "\n", `ls`;

#print TEMP "Listado @listado1\n";

foreach my $directorio (sort @listado1) {
	if ( !($directorio =~ /\.header/) ) {
#		print TEMP "AL LORO: ".`ls -alR`."\n".`pwd`."\n\n";
# 		print TEMP "Directorio de busqueda: $directorio\n";
#		my $comando = "cd $directorio";
#		print TEMP "Comando: $comando\n\n\n\n";
#		`$comando`;
		@listado = split "\n", `ls $directorio`;
#		print TEMP "Listado @listado\n\n\n";
		
		foreach my $archivo (sort @listado) {
			if ( ($temp = &busca_virus ("$directorio/$archivo")) ne "0") {
				$virus{"'$directorio/$archivo'"} = $temp;
				$contador++;
#				print TEMP "$archivo => $virus{$archivo}\n";
			}
		}
#		system "cd ..";
	}
}

if ( $contador == 0 ) { 
#	print TEMP "Virus: 0\n"; 
	print "Virus: 0\n"; 
#	close TEMP;  
	exit 0;
}

$temp = "Virus: $contador##Base: $base##";

$contador = 1;
foreach my $archivo (sort keys %virus) {
	$temp .= "$contador: $archivo => $virus{$archivo}##";
	$contador++;
}
$temp .= "\n";
#print TEMP $temp;
print $temp;

#close TEMP;

sub busca_virus {
	
	my $archivo = $_[0];
	
	my $comando = "$pavcl '$archivo' @ARGV -CMP 2>&1 ";
#	print TEMP $comando."\n\n";

	open SALIDA, "$comando |";
	
	while (<SALIDA>) { 
		s/\(\[|\(|\))?\??\d*;?\d*(m|r|l|h|H|B|0|A|M|d|J|K|G)//g;
		s/;1m//g;
		s/(\|\r)//g;

#		print TEMP $_;
	
		if (/(Found virus|Encontrado virus)\s*:\s*((\w|\-|\_|\/)+)/) {
		#if (/Encontrado virus:\s+((\w|\-|\_|\/)+)/) { 
			close SALIDA;
			#return $1; 
			return $2; 
		}
	}
	close SALIDA;
	return 0;
}

