Changeset 44

Show
Ignore:
Timestamp:
05/30/07 18:09:23 (3 years ago)
Author:
root
Message:

Add include support to op_server.cfg

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/op_server.pl

    r43 r44  
    217217my %total_legends; 
    218218my %total_images; 
    219 my @btninclude   = (); 
    220 my @styleinclude = (); 
    221 my $command      = ""; 
    222 my $daemonized   = 0; 
    223 my $pidfile      = "/var/run/op_panel.pid"; 
    224 my $logdir       = ""; 
    225 my $confdir      = ""; 
    226 my $tab          = ""; 
     219my @serverinclude = (); 
     220my @btninclude    = (); 
     221my @styleinclude  = (); 
     222my $command       = ""; 
     223my $daemonized    = 0; 
     224my $pidfile       = "/var/run/op_panel.pid"; 
     225my $logdir        = ""; 
     226my $confdir       = ""; 
     227my $tab           = ""; 
    227228 
    228229my $PADDING = join( 
     
    399400sub read_server_config() { 
    400401    my $context = ""; 
     402    my @distinct_files; 
    401403    $counter_servers = -1; 
    402404 
    403405    $/ = "\n"; 
    404406 
    405     open( CONFIG, "<$directorio/op_server.cfg" ) 
    406       or die("Could not open op_server.cfg. Aborting..."); 
    407  
    408     while (<CONFIG>) { 
    409         chomp; 
    410         $_ =~ s/^\s+//g; 
    411         $_ =~ s/([^;]*)[;](.*)/$1/g; 
    412         $_ =~ s/\s+$//g; 
    413  
    414         if ( /^#/ || /^;/ || /^$/ ) { 
    415             next; 
    416         }    # Ignores comments and empty lines 
    417  
    418         if (/^\Q[\E/) { 
    419             s/\[(.*)\]/$1/g; 
    420             tr/a-z/A-Z/; 
    421             $context = $_; 
    422         } 
    423         else { 
    424             if ( $context ne "" ) { 
    425                 my ( $variable_name, $value ) = split( /=/, $_ ); 
    426                 $variable_name =~ tr/A-Z/a-z/; 
    427                 $variable_name =~ s/\s+//g; 
    428                 $value         =~ s/^\s+//g; 
    429                 $value         =~ s/\s+$//g; 
    430                 $value         =~ s/\"//g; 
    431                 $config->{$context}{$variable_name} = $value; 
    432  
    433                 if ( $variable_name eq "manager_host" ) { 
    434                     $counter_servers++; 
    435                     $manager_host[$counter_servers] = $value; 
    436                 } 
    437  
    438                 if ( $variable_name eq "manager_user" ) { 
    439                     $manager_user[$counter_servers] = $value; 
    440                 } 
    441  
    442                 if ( $variable_name eq "manager_secret" ) { 
    443                     $manager_secret[$counter_servers] = $value; 
    444                 } 
    445  
    446                 if ( $variable_name eq "manager_port" ) { 
    447                     $manager_port[$counter_servers] = $value; 
    448                 } 
    449  
    450                 if ( $variable_name eq "event_mask" ) { 
    451                     $event_mask[$counter_servers] = $value; 
    452                 } 
    453  
    454                 if ( $variable_name eq "astmanproxy_server" ) { 
    455                     push @astmanproxy_servers, $value; 
    456                 } 
    457  
    458             } 
    459         } 
    460     } 
    461     close(CONFIG); 
     407    @distinct_files = unique(@serverinclude); 
     408 
     409    foreach my $archivo (@distinct_files) { 
     410 
     411        open( CONFIG, "<$directorio/$archivo" ) 
     412          or die("Could not open op_server.cfg. Aborting..."); 
     413 
     414        while (<CONFIG>) { 
     415            chomp; 
     416            $_ =~ s/^\s+//g; 
     417            $_ =~ s/([^;]*)[;](.*)/$1/g; 
     418            $_ =~ s/\s+$//g; 
     419 
     420            if ( /^#/ || /^;/ || /^$/ ) { 
     421                next; 
     422            }    # Ignores comments and empty lines 
     423 
     424            if (/^\Q[\E/) { 
     425                s/\[(.*)\]/$1/g; 
     426                tr/a-z/A-Z/; 
     427                $context = $_; 
     428            } 
     429            else { 
     430                if ( $context ne "" ) { 
     431                    my ( $variable_name, $value ) = split( /=/, $_ ); 
     432                    $variable_name =~ tr/A-Z/a-z/; 
     433                    $variable_name =~ s/\s+//g; 
     434                    $value         =~ s/^\s+//g; 
     435                    $value         =~ s/\s+$//g; 
     436                    $value         =~ s/\"//g; 
     437                    $config->{$context}{$variable_name} = $value; 
     438 
     439                    if ( $variable_name eq "manager_host" ) { 
     440                        $counter_servers++; 
     441                        $manager_host[$counter_servers] = $value; 
     442                    } 
     443 
     444                    if ( $variable_name eq "manager_user" ) { 
     445                        $manager_user[$counter_servers] = $value; 
     446                    } 
     447 
     448                    if ( $variable_name eq "manager_secret" ) { 
     449                        $manager_secret[$counter_servers] = $value; 
     450                    } 
     451 
     452                    if ( $variable_name eq "manager_port" ) { 
     453                        $manager_port[$counter_servers] = $value; 
     454                    } 
     455 
     456                    if ( $variable_name eq "event_mask" ) { 
     457                        $event_mask[$counter_servers] = $value; 
     458                    } 
     459 
     460                    if ( $variable_name eq "astmanproxy_server" ) { 
     461                        push @astmanproxy_servers, $value; 
     462                    } 
     463 
     464                } 
     465            } 
     466        } 
     467        close(CONFIG); 
     468    } 
    462469 
    463470    $web_hostname     = $config->{GENERAL}{web_hostname}; 
     
    660667        if ( !grep { $filename eq $_ } @styleinclude ) { 
    661668            push( @styleinclude, $filename ); 
     669        } 
     670        else { 
     671            log_debug( "** $filename already included", 16 ) if DEBUG; 
     672            return; 
     673        } 
     674    } 
     675    if ( $tipo eq "server" ) { 
     676        if ( !grep { $filename eq $_ } @serverinclude ) { 
     677            push( @serverinclude, $filename ); 
    662678        } 
    663679        else { 
     
    65096525collect_includes( "op_buttons.cfg", "buttons" ); 
    65106526collect_includes( "op_style.cfg",   "style" ); 
     6527collect_includes( "op_server.cfg",  "server" ); 
    65116528read_buttons_config(); 
    65126529read_server_config();