--- loncom/configuration/Configuration.pm 2006/09/15 20:49:27 1.13 +++ loncom/configuration/Configuration.pm 2007/08/30 20:19:35 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Configuration file reader # -# $Id: Configuration.pm,v 1.13 2006/09/15 20:49:27 raeburn Exp $ +# $Id: Configuration.pm,v 1.14 2007/08/30 20:19:35 albertel Exp $ # # # Copyright Michigan State University Board of Trustees @@ -34,7 +34,7 @@ package LONCAPA::Configuration; -$VERSION = sprintf("%d.%02d", q$Revision: 1.13 $ =~ /(\d+)\.(\d+)/); +$VERSION = sprintf("%d.%02d", q$Revision: 1.14 $ =~ /(\d+)\.(\d+)/); use strict; @@ -58,19 +58,33 @@ sub read_conf { if ($configdir eq '') { die("Couldn't find a directory containing $filename"); } - open(CONFIG,'<'.$configdir.$filename) or - die("Can't read $configdir$filename"); - while (my $configline=) { - if ($configline =~ /^[^\#]*PerlSetVar/) { - my ($unused,$varname,$varvalue)=split(/\s+/,$configline); - chomp($varvalue); - $perlvar{$varname}=$varvalue; + &process_file($configdir.$filename,\%perlvar); + if ($filename eq 'loncapa_apache.conf') { + my @files = glob($configdir.'loncapa_apache_local*.conf'); + foreach my $file (@files) { + &process_file($file,\%perlvar); } } - close(CONFIG); } - my $perlvarref=\%perlvar; - return ($perlvarref); + return (\%perlvar); +} + +# --------------- Subroutine process_file: helper routine +# This subroutine does the actual file reading and reads PerlSetVar discovery +# specified file, arguments are the filename and a ref to a hash to +# place the values in +sub process_file { + my ($file,$perlvar) = @_; + open(my $config,'<',$file) or + die("Can't read $file"); + while (my $configline=<$config>) { + if ($configline =~ /^[^\#]*PerlSetVar/) { + my ($unused,$varname,$varvalue)=split(/\s+/,$configline); + chomp($varvalue); + $perlvar->{$varname}=$varvalue; + } + } + close($config); } #---------------------- Subroutine read_hosts: Read a LON-CAPA hosts.tab