#!/usr/bin/perl
BEGIN {
    unshift @INC, '/usr/local/cpanel';
}
use strict;
use Cpanel::PwCache              ();
use Cpanel::SafeFile             ();
use Cpanel::FileUtils::TouchFile ();

Cpanel::PwCache::init_passwdless_pwcache();

my $reseller_file = '/var/cpanel/resellers';

if ( !-e $reseller_file ) { Cpanel::FileUtils::TouchFile::touchfile($reseller_file); }
my $time = time();
system 'cp', '-fv', $reseller_file, $reseller_file . '.backup.' . $time;
chmod 0600, $reseller_file . '.backup.' . $time;

my $reslock = Cpanel::SafeFile::safeopen( \*RES, '+<', $reseller_file );
if ( !$reslock ) {
    die("Could not edit $reseller_file");
}
print "Removing Dead Resellers...";
my @DEADRESELLERS;
my @RES = <RES>;
seek( RES, 0, 0 );
foreach (@RES) {
    my $user = ( split( /\:/, $_ ) )[0];
    next if ( !$user );
    if ( !Cpanel::PwCache::getpwnam($user) ) {
        print "...$user...";
        push @DEADRESELLERS, $user;
    }
}
print "Done\n";
my $deadresellerregex = '(?:' . join( '|', @DEADRESELLERS ) . ')';
@RES = grep( !/^${deadresellerregex}:/, @RES );
seek( RES, 0, 0 );
print RES join( '', @RES );
truncate( RES, tell(RES) );
Cpanel::SafeFile::safeclose( \*RES, $reslock );

