Mini Shell
#!/usr/local/cpanel/3rdparty/bin/perl
# cpanel - scripts/mkwwwacctconf 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::mkwwwacctconf;
use cPstrict;
use Cpanel::Config::SaveWwwAcctConf ();
use Cpanel::Config::LoadWwwAcctConf ();
use Cpanel::DIp::MainIP ();
use Cpanel::Hostname ();
use Cpanel::NameserverCfg ();
use Whostmgr::TweakSettings::Basic ();
exit run(@ARGV) unless caller;
sub run {
my @args = @_;
my $reset = @args && grep( /^--(?:reset|force)$/, @args ) ? 1 : 0;
my $inherit = ( grep { $_ eq '--inherit' } @args ) ? 1 : 0;
my $wwwacctconf = '/etc/wwwacct.conf';
my %cur_conf = Cpanel::Config::LoadWwwAcctConf::loadwwwacctconf();
# Don't clobber a valid config
if ( !$reset && -e $wwwacctconf ) {
return 0 if ( $cur_conf{'DEFMOD'} || $cur_conf{'NS'} || $cur_conf{'HOST'} ); # Check to see if some common settings are configured
}
my $hostname = Cpanel::Hostname::gethostname();
my $sharedip = Cpanel::DIp::MainIP::getmainserverip();
# Sanity check
if ( !$sharedip ) {
die 'Unable to determine main shared IP.';
}
my ( $ns, $ns2 ) = Cpanel::NameserverCfg::generate_default_nameservers();
my $conf_hostname = ( $hostname && $hostname =~ m{\.} ) ? $hostname : q{};
my $conf_ns = $ns;
my $conf_ns2 = $ns2;
my %system_specific_values = (
'ADDR' => $sharedip,
'HOST' => $conf_hostname,
'NS' => $conf_ns,
'NS2' => $conf_ns2,
);
my %conf;
for my $key ( keys %Whostmgr::TweakSettings::Basic::Conf ) {
my $default = $Whostmgr::TweakSettings::Basic::Conf{$key}->{'default'};
if ( !defined($default) ) {
$conf{$key} = $inherit ? $cur_conf{$key} : q{};
}
elsif ( ref $default eq 'CODE' ) {
$conf{$key} = $default->();
}
else {
$conf{$key} = $default;
}
}
@conf{ keys %system_specific_values } = values %system_specific_values;
Cpanel::Config::SaveWwwAcctConf::savewwwacctconf( \%conf );
return 0;
}
1;
Zerion Mini Shell 1.0