#!/usr/local/cpanel/3rdparty/bin/perl

# cpanel - scripts/autorepair                      Copyright 2022 cPanel, L.L.C.
#                                                           All rights reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

use Cpanel::HttpRequest     ();
use Cpanel::Errors          ();
use Cpanel::Config::Sources ();
use Cpanel::Binaries        ();

my $sources = Cpanel::Config::Sources::loadcpsources();
$| = 1;

my $script = 'autorepair';
if ( $ARGV[0] ) {
    $script = $ARGV[0];
}

$script =~ s/\///g;

my $httpClient = Cpanel::HttpRequest->new( 'hideOutput' => 1 );

print "Requesting script ... ";
my $autofix = $httpClient->request(
    'host'     => $sources->{'HTTPUPDATE'},
    'url'      => '/autofixer2/' . $script,
    'protocol' => 0,
    'signed'   => 1,
);
if ( $autofix eq '' ) {
    Cpanel::Errors::deaderror("Problem downloading script $script! Please verify the script's name.");
}
print "Done\n";
print "Auto Repair is running...";
my $perl    = Cpanel::Binaries::path('perl');
my $perlpid = open( PERL, "|$perl" );
print PERL $autofix;
close(PERL);
waitpid( $perlpid, 1 );
print "...Auto Repair is done.\n";
