#!/usr/bin/perl -w

use Digest::SHA3;
use strict;

my $home = $ARGV[0] // '.';
my %SIGN;

verdup($home);

sub verdup {
    my $dir = shift;
    $dir .= '/' if ($dir !~ /\/$/);
    print "DIR-> $dir\n";
    opendir (my $dh, $dir) or warn "Cannot opendir $dir";
    my @files = readdir ($dh);
    closedir ($dh);
    for my $i (@files){
	next if ($i=~/^\.$/ || $i=~/^\.\.$/);
	my $real = $dir.$i; 
#	print "$real\n";
	if (-d $real) {
#	    if ( chdir $real ){
		verdup ($real);
#	    }else{ warn "No hay privilegios y no se accede a $i" };
	}elsif (-f $real) {
#	$sha3->addfile(*F);
	    my $sha3 = Digest::SHA3->new(256);
	    $sha3->addfile($real,'b');
	    my $digest = $sha3->digest;        # compute digest
#	$digest = $sha3->hexdigest;
#	$digest = $sha3->b64digest;
#	    $real =~ /\/(.*)$/;
#	    my $base = $1;
	    $SIGN{ $i.$digest }++;
	    if ($SIGN{ $i.$digest } > 1 ){
		print "$real is a real dupe type $i  [D]elete/[O]mit/[Q]uit?\n";
		my $r = <STDIN>;
		if ($r =~ /d/i) {
		    unlink $real;
		}elsif ($r =~ /q/i){
		    exit 1;
		}else{
		    # do nothing
		}
	    }else{
		# since the file is unique you must add its SIGN to a DB
		# for security purposes
	    }
	}else{
#	    print "Not a file or a directory\n";
	}
    }
}

__END__
