#!/usr/local/cpanel/3rdparty/bin/perl
# cpanel - scripts/build_cpnat 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
package scripts::build_cpnat;
use strict;
use warnings;
use Cpanel::Config::SaveWwwAcctConf ();
use Cpanel::Config::LoadWwwAcctConf ();
use Cpanel::NAT ();
use Cpanel::NAT::Discovery ();
use Cpanel::NAT::Build ();
use Cpanel::Usage ();
use Cpanel::Debug ();
exit( run(@ARGV) ) unless caller();
sub run {
my $man_page = 0;
my %opts = (
'man' => \$man_page,
);
Cpanel::Usage::wrap_options( \@ARGV, \&usage, \%opts );
return man() if $man_page;
my $failures;
my $cp_nat = Cpanel::NAT::Discovery->new();
eval {
$failures = $cp_nat->discover();
validate_wwwacct_conf();
};
if ($@) {
die $@;
}
Cpanel::NAT::Build::update();
if ( keys %$failures ) {
return 1;
}
return 0;
}
sub usage {
my $prog = $0;
$prog =~ s{^.+/(.+)$}{$1};
print <